/*
Theme Name: Imaginarium × Shopkeeper V0.67
Template: shopkeeper
Version: 0.67.0
Requires PHP: 7.4
Description: Full-width editorial/museum Shopkeeper child theme for Imaginarium of Tears.
*/
:root{
 --iot-black:#050607;
 --iot-paper:#f1eee8;
 --iot-warm:#e4ded4;
 --iot-ink:#111315;
 --iot-white:#f8f6f1;
 --iot-soft:#dfddd8;
 --iot-muted:#9da1a4;
 --iot-serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Baskerville,Georgia,"Times New Roman",serif;
 --iot-sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
 --iot-mono:SFMono-Regular,Consolas,"Liberation Mono","Courier New",monospace;
}
html{scroll-behavior:smooth}
.iot12-special{background:var(--iot-black)!important}
.iot12-special *{box-sizing:border-box}
.iot12-special a{text-decoration:none}

/* Always visible navigation; typography intentionally matches editorial page */
.iot12-header{
 position:fixed;z-index:99999;top:0;left:0;right:0;height:78px;
 display:flex;align-items:center;justify-content:space-between;padding:0 4vw;
 border-bottom:1px solid rgba(255,255,255,.18);
 background:rgba(5,6,7,.22);
 color:var(--iot-white);
 transition:background .2s ease,backdrop-filter .2s ease;
}
.iot12-header.scrolled{
 background:rgba(5,6,7,.90);
 backdrop-filter:blur(14px);
 -webkit-backdrop-filter:blur(14px);
}
.iot12-logo{
 font:400 21px/1 var(--iot-serif);
 letter-spacing:-.02em;color:var(--iot-white)!important
}
.iot12-nav{display:flex;align-items:center;gap:16px}
.iot12-nav a{
 font:400 14px/1 var(--iot-serif);
 letter-spacing:-.01em;
 color:var(--iot-white)!important;
}
.iot12-nav a:hover{opacity:.68}
.iot12-nav .collect{
 padding:11px 16px;border:1px solid rgba(255,255,255,.55);
 border-radius:999px;font-family:var(--iot-sans);font-size:12px;font-weight:700
}
.iot12-toggle{display:none;background:none;border:0;color:#fff;font-size:22px}

.iot12-site{width:100%;max-width:none!important;margin:0!important;padding:0!important;background:#c9c3bb;font-family:var(--iot-sans);color:var(--iot-ink)}
.iot12-site>p:empty{display:none}
.iot12-site img{display:block;max-width:100%}
.paper{background:var(--iot-paper);color:var(--iot-ink)}
.warm{background:var(--iot-warm);color:var(--iot-ink)}
.black{background:var(--iot-black);color:var(--iot-white)}
.iot12-micro,.iot12-type{
 font:10px var(--iot-mono);text-transform:uppercase;letter-spacing:.11em;color:#7d8285
}

/* Hero */
.iot12-hero{height:100vh;min-height:720px;position:relative;overflow:hidden;background:#000;display:flex;align-items:flex-end}
.iot12-hero iframe{position:absolute;inset:-10%;width:120%;height:120%;border:0;pointer-events:none}
.iot12-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.13),rgba(0,0,0,.04) 42%,rgba(0,0,0,.84));z-index:1}
.iot12-hero-copy{position:relative;z-index:2;color:var(--iot-white);padding:0 5vw 9vh;max-width:1200px}
.iot12-hero .iot12-micro{color:var(--iot-soft)}
.iot12-hero h1{
 font:400 clamp(70px,11vw,170px)/.84 var(--iot-serif);
 letter-spacing:-.065em;margin:18px 0 30px;color:var(--iot-white)!important
}
.iot12-hero p{
 font:clamp(21px,2.2vw,34px)/1.34 var(--iot-serif);
 max-width:790px;color:var(--iot-white)!important
}
.iot12-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:30px}
.iot12-btn{display:inline-flex!important;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:999px;padding:13px 18px;font-size:12px;font-weight:700}
.iot12-btn.light{background:#fff;color:#111!important;border-color:#fff}
.iot12-btn.outline{color:#fff!important}
.iot12-btn.darkbtn{background:#111;color:#fff!important;border-color:#111}

/* Editorial grid */
.iot12-section{padding:9vw 5vw}
.iot12-layout{display:grid;grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:clamp(30px,4vw,72px)}
.iot12-content{max-width:1120px;width:100%}
.iot12-content h2{
 font:400 clamp(56px,8vw,124px)/.92 var(--iot-serif);
 letter-spacing:-.055em;margin:0;color:inherit
}
.black .iot12-content h2,.black h1,.black h2,.black h3{color:var(--iot-white)!important}
.iot12-lead-strong{
 width:100%;font:600 clamp(22px,2.35vw,35px)/1.38 var(--iot-serif);
 margin:38px 0 0
}
.iot12-copy-columns{
 display:grid;grid-template-columns:1fr 1fr;gap:clamp(38px,5vw,82px);
 width:100%;margin-top:50px
}
.iot12-copy-columns p{font:18px/1.72 var(--iot-serif);margin:0}
.iot12-more{
 display:inline-block;margin-top:38px;color:var(--iot-ink)!important;
 font-size:13px;border-bottom:1px solid currentColor;padding-bottom:3px
}

/* Tear selection + archive */
.iot12-filters{
 display:flex;gap:8px;flex-wrap:wrap;background:var(--iot-paper);
 padding:24px 5vw;border-bottom:1px solid rgba(0,0,0,.18)
}
.iot12-filters a{border:1px solid #aaa39a;border-radius:999px;padding:9px 13px;font-size:11px;color:var(--iot-ink)!important}
.iot12-tears{display:grid;grid-template-columns:1fr 1fr;background:#000}
.iot12-tear{height:78vh;min-height:620px;position:relative;overflow:hidden;background:#050607}
.iot12-tear>a{display:block;height:100%;color:var(--iot-white)!important}
.iot12-tear img{width:100%;height:100%;object-fit:cover;transition:transform .65s ease}
.iot12-tear:hover img{transform:scale(1.025)}
.iot12-tear-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.03) 34%,rgba(0,0,0,.91))}
.iot12-tear-copy{position:absolute;z-index:2;left:4vw;right:4vw;bottom:4vw;max-width:610px}
.iot12-tear-copy .iot12-type{color:var(--iot-soft)}
.iot12-tear-copy h3{
 font:400 clamp(38px,4vw,68px)/1 var(--iot-serif);
 letter-spacing:-.04em;margin:9px 0;color:var(--iot-white)!important
}
.iot12-tear-copy p{
 font:17px/1.48 var(--iot-serif);
 color:var(--iot-white)!important;margin:0;max-width:580px
}

/* Kit comes after gallery */
.iot12-kit{
 display:grid;grid-template-columns:1.08fr .92fr;min-height:88vh;background:var(--iot-warm)
}
.iot12-kit-media{
 display:grid;grid-template-columns:1.25fr .75fr;gap:6px;padding:6px;background:#0b0c0d
}
.iot12-kit-media>div{overflow:hidden;background:#111}
.iot12-kit-media img{width:100%;height:100%;object-fit:cover}
.iot12-kit-copy{padding:7vw 5vw;display:flex;flex-direction:column;justify-content:center}
.iot12-kit-copy h2{
 font:400 clamp(48px,6vw,92px)/.94 var(--iot-serif);
 letter-spacing:-.05em;margin:18px 0 28px
}
.iot12-kit-copy p{font:18px/1.62 var(--iot-serif);max-width:680px;margin:0 0 18px}
.iot12-price{font:13px var(--iot-mono);margin:8px 0 24px}

/* Process — no evaporation/crystallization video */
.iot12-lead-dark{font:clamp(22px,2.3vw,34px)/1.42 var(--iot-serif);max-width:900px;margin:34px 0 0;color:#c3c2bd}
.iot12-process-overview{height:92vh;position:relative;overflow:hidden;background:#090a0b}
.iot12-process-overview>img{width:100%;height:100%;object-fit:cover}
.iot12-process-caption{
 position:absolute;right:5vw;bottom:5vw;max-width:500px;
 background:rgba(5,6,7,.84);backdrop-filter:blur(9px);padding:28px;color:#fff
}
.iot12-process-caption .iot12-micro{color:#d9d7d2}
.iot12-process-caption p{font:18px/1.55 var(--iot-serif);margin:13px 0 0}
.iot12-video{height:100vh;min-height:720px;position:relative;background:#000}
.iot12-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.iot12-video-label{
 position:absolute;left:4vw;bottom:4vw;color:#fff;background:rgba(0,0,0,.64);
 padding:10px 12px;font:10px var(--iot-mono);text-transform:uppercase;letter-spacing:.1em
}

/* Finished artwork */
.iot12-wall{display:grid;grid-template-columns:1fr 1fr}
.iot12-wall figure{margin:0;height:100vh;min-height:700px;position:relative;overflow:hidden}
.iot12-wall img{width:100%;height:100%;object-fit:cover}
.iot12-wall figcaption{
 position:absolute;left:22px;bottom:18px;background:rgba(255,255,255,.90);
 padding:9px 11px;font:10px var(--iot-mono);text-transform:uppercase;letter-spacing:.08em
}

/* Shop */
.iot12-shop-head .iot12-micro{color:#aaa}
.iot12-shop{display:grid;grid-template-columns:1fr 1fr;background:#0a0b0c;color:#fff}
.iot12-product{min-height:86vh;display:flex;flex-direction:column;color:#fff!important}
.iot12-product-img{height:58vh;overflow:hidden;background:#111}
.iot12-product-img img{width:100%;height:100%;object-fit:cover}
.iot12-product-copy{padding:42px 4vw 62px;flex:1;display:flex;flex-direction:column}
.iot12-product h3{
 font:400 clamp(42px,5vw,80px)/1 var(--iot-serif);
 letter-spacing:-.04em;margin:12px 0 20px;color:#fff!important
}
.iot12-product p{color:#c3c2bd;line-height:1.6;max-width:600px}
.iot12-product-bottom{
 margin-top:auto;padding-top:25px;border-top:1px solid rgba(255,255,255,.18);
 display:flex;justify-content:space-between
}

/* Events, Journal, Press */
.iot12-events,.iot12-journal{margin-top:55px;border-top:1px solid rgba(0,0,0,.20)}
.iot12-event,.iot12-jrow{
 display:grid;grid-template-columns:130px 1fr 40px;gap:28px;padding:26px 0;
 border-bottom:1px solid rgba(0,0,0,.20);color:var(--iot-ink)!important
}
.iot12-event>span,.iot12-jrow>span{font:30px var(--iot-serif);color:#77716a}
.iot12-jrow>span{font:10px var(--iot-mono);text-transform:uppercase;letter-spacing:.08em}
.iot12-event h3,.iot12-jrow h3{
 font:400 clamp(27px,3vw,44px)/1.06 var(--iot-serif);
 margin:0 0 8px;color:var(--iot-ink)!important
}
.iot12-event p,.iot12-jrow p{color:#625e58;line-height:1.55;margin:0;max-width:760px}
.iot12-event>b,.iot12-jrow>b{font-size:24px;font-weight:400}
.iot12-press{display:flex;flex-wrap:wrap;gap:24px 42px;margin-top:50px}
.iot12-press a{
 font:clamp(30px,4vw,60px)/1 var(--iot-serif);
 color:var(--iot-white)!important
}
.iot12-press a:hover{opacity:.62}

/* Singles */
.iot12-single-tear{min-height:100vh;display:grid;grid-template-columns:1.12fr .88fr;background:#050607;color:#fff;padding-top:78px}
.iot12-single-image{height:calc(100vh - 78px);background:#020304}
.iot12-single-image img{width:100%;height:100%;object-fit:contain}
.iot12-single-copy{padding:5vw;display:flex;flex-direction:column;justify-content:center}
.iot12-single-copy h1{font:400 clamp(72px,10vw,150px)/.86 var(--iot-serif);letter-spacing:-.065em;margin:20px 0 40px;color:#fff}
.iot12-single-copy blockquote{font:clamp(27px,3vw,45px)/1.18 var(--iot-serif);letter-spacing:-.025em;margin:0;color:#eee}
.iot12-single-copy blockquote{quotes:none!important;border:0!important;padding:0!important;background:none!important}
.iot12-single-copy blockquote:before,.iot12-single-copy blockquote:after,.iot12-single-copy blockquote::before,.iot12-single-copy blockquote::after{content:none!important;display:none!important}
.iot12-spec{margin-top:45px;padding-top:20px;border-top:1px solid rgba(255,255,255,.18);display:grid;grid-template-columns:1fr 1fr;font:9px var(--iot-mono);text-transform:uppercase;letter-spacing:.08em;color:#888}
.iot12-spec b{display:block;color:#ddd;font-weight:400;margin-top:7px}
.iot12-article-head{padding:150px 5vw 75px}
.iot12-article-head h1{font:400 clamp(64px,10vw,150px)/.87 var(--iot-serif);letter-spacing:-.065em;margin:18px 0 28px}
.iot12-article-head.black h1{color:#fff!important}
.iot12-article-head>p{font:22px/1.4 var(--iot-serif);max-width:750px}
.iot12-longread{max-width:880px;margin:0 auto;font:21px/1.7 var(--iot-serif)}
.iot12-longread a{border-bottom:1px solid currentColor}

/* Full legal/contact footer */
.iot12-footer{background:#050607;color:#fff;padding:8vw 5vw 42px}
.iot12-footer-top{display:grid;grid-template-columns:1.12fr .88fr;gap:80px}
.iot12-footer h2{
 font:400 clamp(60px,8vw,125px)/.88 var(--iot-serif);
 letter-spacing:-.055em;margin:20px 0 32px;color:#fff!important
}
.iot12-footer-intro{font:20px/1.55 var(--iot-serif);max-width:700px;color:#c5c4c0}
.iot12-footer-contact{display:grid;gap:28px}
.iot12-contact-block{padding-top:16px;border-top:1px solid rgba(255,255,255,.18)}
.iot12-contact-block h3{font:400 28px var(--iot-serif);margin:0 0 9px;color:#fff}
.iot12-contact-block p{margin:0;color:#b7b6b2;line-height:1.6}
.iot12-contact-block a{color:#fff!important;border-bottom:1px solid rgba(255,255,255,.42)}
.iot12-footer-grid{
 display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:34px;
 margin-top:82px;padding-top:30px;border-top:1px solid rgba(255,255,255,.18)
}
.iot12-footer-grid h4{font:10px var(--iot-mono);letter-spacing:.1em;text-transform:uppercase;color:#828282;margin:0 0 15px}
.iot12-footer-grid a,.iot12-footer-grid p{display:block;color:#deddd9!important;margin:8px 0;font-size:13px;line-height:1.55}
.iot12-footer-grid .legal p{color:#c2c1bd!important}
.iot12-socials a{font-family:var(--iot-serif);font-size:18px}
.iot12-footer-bottom{
 margin-top:55px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);
 display:flex;justify-content:space-between;gap:20px;color:#747474;
 font:9px var(--iot-mono);text-transform:uppercase;letter-spacing:.08em
}


/* ---------- V0.12 additions: concepts from old site, styled as V0.7 ---------- */
.iot12-stats{
 display:grid;grid-template-columns:1.35fr repeat(4,1fr);
 align-items:stretch;background:var(--iot-paper);color:var(--iot-ink);
 border-top:1px solid rgba(0,0,0,.15);border-bottom:1px solid rgba(0,0,0,.15)
}
.iot12-stats-intro,.iot12-stat{padding:42px 3.5vw;min-height:180px;display:flex;flex-direction:column;justify-content:center}
.iot12-stats-intro{border-right:1px solid rgba(0,0,0,.15)}
.iot12-stats-intro p{font:24px/1.25 var(--iot-serif);margin:15px 0 0;max-width:280px}
.iot12-stat{align-items:flex-start;border-right:1px solid rgba(0,0,0,.15)}
.iot12-stat:last-child{border-right:0}
.iot12-stat strong{
 font:400 clamp(52px,5.5vw,88px)/.9 var(--iot-serif);
 letter-spacing:-.055em;color:var(--iot-ink)
}
.iot12-stat span{font:11px var(--iot-mono);text-transform:uppercase;letter-spacing:.09em;color:#6f7477;margin-top:14px}
.iot12-view-all{background:#050607;padding:28px 5vw 46px;text-align:right}
.iot12-view-all a{color:#fff!important;font:17px var(--iot-serif);border-bottom:1px solid rgba(255,255,255,.48);padding-bottom:3px}

/* Process: screenshot composition translated into the V0.7 visual language */
.iot12-process{
 display:grid;grid-template-columns:1.05fr .95fr;gap:7vw;
 background:var(--iot-black);color:var(--iot-white);padding:9vw 5vw
}
.iot12-process-intro .iot12-micro{color:#b6b6b0}
.iot12-process-intro h2,.iot12-process-intro h1{
 font:400 clamp(66px,8vw,126px)/.85 var(--iot-serif);
 letter-spacing:-.06em;margin:14px 0 38px;color:var(--iot-white)!important
}
.iot12-process-intro>p{
 font:600 clamp(24px,2.45vw,36px)/1.28 var(--iot-serif);
 max-width:640px;color:var(--iot-white);margin:0
}
.iot12-process-steps{border-top:1px solid rgba(255,255,255,.17)}
.iot12-process-step{
 display:grid;grid-template-columns:75px 1fr;gap:28px;
 padding:27px 0;border-bottom:1px solid rgba(255,255,255,.17)
}
.iot12-process-step>span{font:400 34px/1 var(--iot-serif);color:#81898f;padding-top:7px}
.iot12-process-step h3{font:400 29px/1.15 var(--iot-serif);margin:0 0 8px;color:#fff}
.iot12-process-step p{font:16px/1.55 var(--iot-sans);margin:0;color:#c7c7c2;max-width:590px}

/* Featured wall: same editorial system as V0.7, not the old site's typography */
.iot12-featured{background:var(--iot-paper);color:var(--iot-ink);padding:9vw 5vw}
.iot12-featured .iot12-content h2{
 font:400 clamp(56px,8vw,124px)/.92 var(--iot-serif);
 letter-spacing:-.055em;margin:0
}
.iot12-featured-intro{font:600 clamp(22px,2.2vw,33px)/1.4 var(--iot-serif);max-width:820px;margin:30px 0 0}
.iot12-logo-grid{
 max-width:1180px;margin:80px auto 0;
 display:grid;grid-template-columns:repeat(6,1fr);gap:34px 26px;align-items:center
}
.iot12-logo-grid a{
 height:78px;display:flex;align-items:center;justify-content:center;
 padding:12px;transition:opacity .2s ease
}
.iot12-logo-grid a:hover{opacity:.5}
.iot12-logo-grid img{
 width:100%;height:100%;object-fit:contain;
 filter:grayscale(1);mix-blend-mode:multiply
}
.iot12-youtube-fallback{
 position:absolute;right:4vw;bottom:4vw;z-index:3;
 color:#fff!important;background:rgba(0,0,0,.65);padding:10px 13px;
 font:11px var(--iot-mono);text-transform:uppercase;letter-spacing:.08em
}

/* ---------- WooCommerce receives the same Imaginarium treatment ---------- */
body.iot12-commerce{
 background:var(--iot-paper)!important;color:var(--iot-ink);
 padding-top:78px;
}
body.iot12-commerce #masthead,
body.iot12-commerce .site-header,
body.iot12-commerce .top-headers-wrapper,
body.iot12-commerce .shopkeeper-mini-cart{
 display:none!important;
}
.iot12-commerce-header{
 position:fixed;z-index:99999;top:0;left:0;right:0;height:78px;
 display:flex;align-items:center;justify-content:space-between;padding:0 4vw;
 border-bottom:1px solid rgba(255,255,255,.16);
 background:rgba(5,6,7,.92);backdrop-filter:blur(14px);
 color:#fff;
}
.iot12-commerce-header .iot12-logo{
 font:400 21px/1 var(--iot-serif);letter-spacing:-.02em;color:#fff!important
}
.iot12-commerce-header .iot12-nav{display:flex;gap:24px;align-items:center}
.iot12-commerce-header .iot12-nav a{
 font:400 16px/1 var(--iot-serif);color:#fff!important;letter-spacing:-.01em
}
.iot12-commerce-header .iot12-nav .collect{
 padding:11px 16px;border:1px solid rgba(255,255,255,.55);
 border-radius:999px;font-family:var(--iot-sans);font-size:12px;font-weight:700
}

/* Shop/archive */
body.iot12-commerce .site-content,
body.iot12-commerce #page_wrapper,
body.iot12-commerce #primary,
body.iot12-commerce .content-area{
 background:var(--iot-paper)!important;
}
body.iot12-commerce .site-content,
body.iot12-commerce .content-area,
body.iot12-commerce #primary{
 max-width:none!important;width:100%!important;
}
body.iot12-commerce .page-title,
body.iot12-commerce .woocommerce-products-header__title,
body.iot12-commerce .woocommerce-page-title{
 font:400 clamp(64px,9vw,140px)/.88 var(--iot-serif)!important;
 letter-spacing:-.06em!important;color:var(--iot-ink)!important;
 text-transform:none!important
}
body.iot12-commerce .woocommerce-products-header{
 padding:7vw 5vw 4vw!important
}
body.iot12-commerce ul.products{
 display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
 gap:1px!important;background:rgba(0,0,0,.14)!important;
 margin:0!important;padding:1px!important
}
body.iot12-commerce ul.products li.product{
 width:auto!important;margin:0!important;background:var(--iot-paper)!important;
 padding:0 0 45px!important
}
body.iot12-commerce ul.products li.product a img{
 width:100%!important;height:62vh!important;min-height:520px!important;
 object-fit:cover!important;margin:0 0 30px!important
}
body.iot12-commerce ul.products li.product .woocommerce-loop-product__title,
body.iot12-commerce ul.products li.product h2,
body.iot12-commerce ul.products li.product h3{
 font:400 clamp(34px,4vw,64px)/1 var(--iot-serif)!important;
 letter-spacing:-.04em!important;color:var(--iot-ink)!important;
 padding:0 4vw!important;margin:0 0 12px!important;text-transform:none!important
}
body.iot12-commerce ul.products li.product .price{
 display:block!important;padding:0 4vw!important;
 font:12px var(--iot-mono)!important;color:#656a6d!important
}
body.iot12-commerce ul.products li.product .button{
 margin:22px 4vw 0!important;border-radius:999px!important;
 background:#111!important;color:#fff!important;padding:13px 17px!important;
 font-size:12px!important
}

/* Single product */
body.iot12-commerce.single-product div.product{
 display:grid!important;grid-template-columns:1.08fr .92fr!important;
 gap:0!important;max-width:none!important;margin:0!important;background:var(--iot-paper)!important
}
body.iot12-commerce.single-product div.product .woocommerce-product-gallery{
 width:auto!important;float:none!important;margin:0!important;background:#090a0b!important
}
body.iot12-commerce.single-product div.product .woocommerce-product-gallery img{
 width:100%!important;min-height:calc(100vh - 78px)!important;object-fit:contain!important
}
body.iot12-commerce.single-product div.product .summary{
 width:auto!important;float:none!important;margin:0!important;padding:7vw 5vw!important;
 display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 78px)
}
body.iot12-commerce.single-product .product_title{
 font:400 clamp(58px,7vw,108px)/.9 var(--iot-serif)!important;
 letter-spacing:-.055em!important;color:var(--iot-ink)!important;
 text-transform:none!important;margin:0 0 28px!important
}
body.iot12-commerce.single-product .price{
 font:13px var(--iot-mono)!important;color:#656a6d!important;margin:0 0 28px!important
}
body.iot12-commerce.single-product .woocommerce-product-details__short-description{
 font:21px/1.55 var(--iot-serif)!important;max-width:700px
}
body.iot12-commerce.single-product table.variations{
 border:0!important;margin-top:28px!important
}
body.iot12-commerce.single-product table.variations td,
body.iot12-commerce.single-product table.variations th{
 border:0!important;padding:8px 0!important
}
body.iot12-commerce.single-product select,
body.iot12-commerce input.input-text,
body.iot12-commerce textarea,
body.iot12-commerce .select2-selection{
 border:1px solid #b8b2aa!important;background:#fff!important;border-radius:0!important;
 min-height:48px!important
}
body.iot12-commerce.single-product .single_add_to_cart_button,
body.iot12-commerce .checkout-button,
body.iot12-commerce button.button,
body.iot12-commerce a.button,
body.iot12-commerce input.button{
 background:#111!important;color:#fff!important;border-radius:999px!important;
 padding:14px 20px!important;text-transform:none!important;font-size:12px!important;
 letter-spacing:0!important
}
body.iot12-commerce.single-product .product_meta{
 border-top:1px solid rgba(0,0,0,.16)!important;margin-top:35px!important;padding-top:22px!important;
 font:11px var(--iot-mono)!important;text-transform:uppercase;letter-spacing:.07em;color:#777!important
}
body.iot12-commerce.single-product .woocommerce-tabs,
body.iot12-commerce.single-product .related.products,
body.iot12-commerce.single-product .up-sells{
 grid-column:1/-1!important;width:100%!important;float:none!important;
 padding:7vw 5vw!important;background:var(--iot-paper)!important
}
body.iot12-commerce.single-product .woocommerce-tabs ul.tabs{
 border:0!important;margin:0 0 35px!important
}
body.iot12-commerce.single-product .woocommerce-tabs ul.tabs li{
 border:0!important;background:none!important
}
body.iot12-commerce.single-product .woocommerce-tabs ul.tabs li a{
 font:16px var(--iot-serif)!important;color:var(--iot-ink)!important
}
body.iot12-commerce.single-product .woocommerce-Tabs-panel{
 max-width:900px!important;font:19px/1.7 var(--iot-serif)!important
}
body.iot12-commerce.single-product .related.products>h2,
body.iot12-commerce.single-product .up-sells>h2{
 font:400 clamp(52px,6vw,92px)/.92 var(--iot-serif)!important;
 letter-spacing:-.05em!important;text-transform:none!important
}

/* Cart / checkout / account */
body.iot12-commerce.woocommerce-cart .woocommerce,
body.iot12-commerce.woocommerce-checkout .woocommerce,
body.iot12-commerce.woocommerce-account .woocommerce{
 max-width:1200px;margin:0 auto!important;padding:7vw 5vw!important
}
body.iot12-commerce .woocommerce h1,
body.iot12-commerce .woocommerce h2,
body.iot12-commerce .woocommerce h3{
 font-family:var(--iot-serif)!important;text-transform:none!important;color:var(--iot-ink)!important
}
body.iot12-commerce .woocommerce h1{font-size:clamp(58px,8vw,110px)!important;letter-spacing:-.05em!important}
body.iot12-commerce .woocommerce h2{font-size:clamp(36px,4vw,58px)!important}
body.iot12-commerce table.shop_table{
 border:0!important;border-collapse:collapse!important;background:transparent!important
}
body.iot12-commerce table.shop_table td,
body.iot12-commerce table.shop_table th{
 border-bottom:1px solid rgba(0,0,0,.16)!important;padding:18px 10px!important
}
body.iot12-commerce .woocommerce-info,
body.iot12-commerce .woocommerce-message,
body.iot12-commerce .woocommerce-error{
 border:1px solid rgba(0,0,0,.15)!important;background:transparent!important;color:var(--iot-ink)!important
}


/* V0.12 footer typography correction */
.iot12-footer-grid h4{
 font:400 22px/1.1 var(--iot-serif)!important;
 color:#fff!important;text-transform:none!important;letter-spacing:-.02em!important;
 margin:0 0 18px!important
}
.iot12-footer-grid a,.iot12-footer-grid p{
 font:15px/1.6 var(--iot-serif)!important;
 color:#d9d8d4!important;margin:5px 0!important
}
.iot12-footer-grid a:hover{color:#fff!important}


/* ---------- V0.12 archive privacy / CTA ---------- */
.iot12-view-all{
 background:#050607!important;
 padding:42px 5vw 52px!important;
 display:flex;justify-content:space-between;align-items:flex-end;gap:50px;text-align:left!important
}
.iot12-view-all>div{max-width:700px}
.iot12-view-all strong{
 display:block;font:400 30px/1.1 var(--iot-serif);color:#fff;margin-bottom:10px
}
.iot12-view-all p{margin:0;color:#aaa99f;line-height:1.55;max-width:650px}
.iot12-view-all>a{flex:none;color:#fff!important}

/* ---------- V0.12 richer process ---------- */
.iot12-process-detail{
 max-width:680px;margin-top:42px;padding-top:28px;
 border-top:1px solid rgba(255,255,255,.18)
}
.iot12-process-detail p{font:17px/1.65 var(--iot-serif)!important;color:#bbb9b1!important;margin:0 0 20px!important}
.iot12-process-detail a{
 color:#fff!important;font:14px var(--iot-serif);
 border-bottom:1px solid rgba(255,255,255,.52);padding-bottom:3px
}

/* ---------- V0.12 2-up artwork carousel ---------- */
.iot12-carousel{background:#0b0c0d;overflow:hidden;position:relative}
.iot12-carousel-track{
 display:flex;width:100%;transition:transform .55s cubic-bezier(.2,.7,.2,1)
}
.iot12-carousel-item{
 flex:0 0 50%;height:88vh;min-height:660px;margin:0;position:relative;overflow:hidden
}
.iot12-carousel-item img{width:100%;height:100%;object-fit:cover}
.iot12-carousel-item figcaption{
 position:absolute;left:24px;bottom:22px;background:rgba(255,255,255,.91);
 padding:9px 12px;font:10px var(--iot-mono);text-transform:uppercase;letter-spacing:.08em
}
.iot12-carousel-controls{
 height:74px;background:#050607;color:#fff;display:flex;align-items:center;justify-content:flex-end;
 gap:18px;padding:0 4vw;border-top:1px solid rgba(255,255,255,.13)
}
.iot12-carousel-controls button{
 width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.35);
 background:transparent;color:#fff;font-size:20px;cursor:pointer
}
.iot12-carousel-controls button:hover{background:#fff;color:#111}
.iot12-carousel-controls span{
 min-width:72px;text-align:center;font:10px var(--iot-mono);letter-spacing:.07em;text-transform:uppercase;color:#aaa
}

/* ---------- V0.12 single Participate / Shop moment ---------- */
.iot12-participate{background:var(--iot-warm);color:var(--iot-ink)}
.iot12-participate-copy{padding:9vw 5vw}
.iot12-participate-copy>h2,.iot12-participate-copy>h1{
 font:400 clamp(58px,8vw,124px)/.91 var(--iot-serif);
 letter-spacing:-.055em;margin:16px 0 32px;max-width:1100px
}
.iot12-participate-lead{
 font:600 clamp(24px,2.6vw,38px)/1.35 var(--iot-serif);
 max-width:920px;margin:0 0 48px
}
.iot12-participate-columns{
 display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);max-width:1120px
}
.iot12-participate-columns p{font:18px/1.7 var(--iot-serif);margin:0}
.iot12-participate .iot12-actions{margin-top:42px}
.iot12-text-link{
 display:inline-flex;align-items:center;padding:13px 0;
 color:var(--iot-ink)!important;font:15px var(--iot-serif);border-bottom:1px solid currentColor
}
.iot12-participate-products{display:grid;grid-template-columns:1fr 1fr;background:#090a0b;gap:1px}
.iot12-participate-product{position:relative;height:72vh;min-height:580px;overflow:hidden;color:#fff!important;background:#111}
.iot12-participate-product>div{height:100%}
.iot12-participate-product img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.iot12-participate-product:hover img{transform:scale(1.02)}
.iot12-participate-product:after{
 content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(0,0,0,.72))
}
.iot12-participate-product>span{
 position:absolute;z-index:2;left:4vw;bottom:4vw;
 font:400 clamp(34px,4vw,62px)/1 var(--iot-serif);letter-spacing:-.04em
}

/* ---------- V0.12 Journal ---------- */
.iot12-journal-intro{
 font:21px/1.55 var(--iot-serif);max-width:860px;color:#5e5a55;margin:34px 0 0
}
.iot12-jrow{grid-template-columns:150px 1fr 40px!important}
.iot12-jrow>span{
 font:10px/1.4 var(--iot-mono)!important;color:#777!important;
 text-transform:uppercase;letter-spacing:.07em
}

/* ---------- V0.12 Featured typography, no screenshot logos ---------- */
.iot12-featured{background:var(--iot-paper);padding:9vw 5vw}
.iot12-featured .iot12-content h2{
 font:400 clamp(56px,8vw,124px)/.92 var(--iot-serif);
 letter-spacing:-.055em;margin:0;color:var(--iot-ink)
}
.iot12-featured-intro{
 font:600 clamp(22px,2.2vw,34px)/1.4 var(--iot-serif);
 max-width:900px;margin:35px 0 0;color:var(--iot-ink)
}
.iot12-featured-list{
 display:grid;grid-template-columns:1fr 1fr;
 margin-top:55px;border-top:1px solid rgba(0,0,0,.18)
}
.iot12-featured-list a{
 display:flex;justify-content:space-between;align-items:center;gap:20px;
 padding:26px 0;border-bottom:1px solid rgba(0,0,0,.18);
 color:var(--iot-ink)!important
}
.iot12-featured-list a:nth-child(odd){padding-right:34px}
.iot12-featured-list a:nth-child(even){padding-left:34px;border-left:1px solid rgba(0,0,0,.18)}
.iot12-featured-list span{
 font:400 clamp(27px,3.1vw,48px)/1.05 var(--iot-serif);letter-spacing:-.035em
}
.iot12-featured-list b{font-size:20px;font-weight:400}

/* Remove any V0.9 logo wall if cached markup appears */
.iot12-logo-grid{display:none!important}


/* V0.12 WooCommerce footer treatment */
body.iot12-commerce footer.site-footer,
body.iot12-commerce .site-footer,
body.iot12-commerce #site-footer,
body.iot12-commerce .footer-wrapper{display:none!important}
.iot12-commerce-footer{
 background:#050607;color:#fff;padding:6vw 5vw 34px;margin-top:70px
}
.iot12-commerce-footer h2{
 font:400 clamp(42px,5vw,78px)/.95 var(--iot-serif)!important;
 letter-spacing:-.045em!important;color:#fff!important;max-width:850px;margin:16px 0 20px!important
}
.iot12-commerce-footer p,.iot12-commerce-footer a{color:#e9e8e4!important;font-family:var(--iot-serif)}
.iot12-commerce-footer-links{
 display:flex;flex-wrap:wrap;gap:16px 30px;margin-top:45px;padding-top:22px;
 border-top:1px solid rgba(255,255,255,.16)
}
.iot12-commerce-footer-bottom{
 margin-top:35px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);
 font:9px var(--iot-mono);text-transform:uppercase;letter-spacing:.08em;color:#777
}



/* =========================================================
   V0.12 Public History + Press/Media archive
   ========================================================= */

/* Homepage: The project in public */
.iot12-public-home .iot12-content{max-width:1120px}
.iot12-public-intro{
 margin:38px 0 0;
 max-width:980px;
 font:600 clamp(22px,2.35vw,35px)/1.38 var(--iot-serif);
 color:var(--iot-ink)
}
.iot12-public-sub{
 margin:25px 0 0;
 max-width:840px;
 font:18px/1.68 var(--iot-serif);
 color:#625e58
}
.iot12-event-type{
 display:block;
 margin:0 0 9px;
 font:9px/1.45 var(--iot-mono);
 text-transform:uppercase;
 letter-spacing:.09em;
 color:#88817a
}
.iot12-public-more{
 margin:38px 0 0;
 padding-top:4px
}
.iot12-public-more a,
.iot12-featured-links a{
 display:inline-block;
 color:var(--iot-ink)!important;
 font:15px/1.4 var(--iot-serif);
 border-bottom:1px solid currentColor;
 padding-bottom:3px
}

/* Dedicated Public History and Press pages */
.iot12-history-header,
.iot12-press-header{
 padding-top:calc(9vw + 78px)!important;
 padding-bottom:6vw!important
}
.iot12-history-list{
 background:var(--iot-paper);
 color:var(--iot-ink);
 padding:0 5vw 9vw
}
.iot12-history-list>.iot12-events{
 max-width:1360px;
 margin:0 auto;
 border-top:1px solid rgba(0,0,0,.20)
}
.iot12-history-event{
 grid-template-columns:130px minmax(0,1fr) 40px;
 padding:31px 0
}
.iot12-history-event h3{
 max-width:900px
}
.iot12-history-event p{
 max-width:850px
}
.iot12-history-event:hover h3{
 opacity:.58
}
.iot12-press-list .iot12-history-event>span{
 font:20px/1.1 var(--iot-serif);
 padding-top:3px
}

/* Homepage Featured stream + archive links */
.iot12-featured-links{
 display:flex;
 flex-wrap:wrap;
 gap:18px 34px;
 align-items:center;
 margin-top:42px;
 padding-top:25px;
 border-top:1px solid rgba(0,0,0,.16)
}
.iot12-featured-links a{
 margin:0
}

/* A long press stream should feel like editorial typography,
   not a grid or tag cloud. */
.iot12-featured-stream{
 text-wrap:pretty
}
.iot12-featured-stream a{
 white-space:normal
}

/* =========================================================
   V0.12 refinements
   ========================================================= */

/* Artwork gallery: no black control bar, no numbers.
   Arrows live over the imagery and appear on hover/focus. */
.iot12-carousel{
 position:relative!important;
 background:#0b0c0d!important;
 overflow:hidden!important
}
.iot12-carousel-track{
 display:flex!important;
 width:100%!important;
 transition:transform .55s cubic-bezier(.2,.7,.2,1)!important;
 touch-action:pan-y pinch-zoom
}
.iot12-carousel-item{
 flex:0 0 50%!important;
 height:88vh!important;
 min-height:660px!important;
 margin:0!important;
 position:relative!important;
 overflow:hidden!important
}
.iot12-carousel-item img{width:100%!important;height:100%!important;object-fit:cover!important}
.iot12-carousel-controls{display:none!important}
.iot12-carousel-arrow{
 position:absolute!important;z-index:5!important;top:50%!important;transform:translateY(-50%)!important;
 width:54px!important;height:54px!important;border-radius:50%!important;
 border:1px solid rgba(255,255,255,.6)!important;
 background:rgba(5,6,7,.48)!important;color:#fff!important;
 display:flex!important;align-items:center!important;justify-content:center!important;
 font-size:24px!important;line-height:1!important;cursor:pointer!important;
 opacity:0!important;pointer-events:none!important;
 transition:opacity .2s ease,background .2s ease,color .2s ease!important;
 backdrop-filter:blur(8px)
}
.iot12-carousel-prev{left:24px!important}
.iot12-carousel-next{right:24px!important}
.iot12-carousel:hover .iot12-carousel-arrow,
.iot12-carousel:focus-within .iot12-carousel-arrow{
 opacity:1!important;pointer-events:auto!important
}
.iot12-carousel-arrow:hover{background:#fff!important;color:#111!important}
.iot12-carousel-arrow:disabled{opacity:0!important;pointer-events:none!important}

/* Participate: text is the visual focal point. No second product-card grid. */
.iot12-participate-products{display:none!important}
.iot12-participate{background:var(--iot-warm)!important}
.iot12-participate-copy{padding:9vw 5vw!important}
.iot12-participate-copy>h2,.iot12-participate-copy>h1{max-width:1120px!important}

/* Featured press becomes a naturally wrapping editorial text stream.
   It can grow to dozens of entries without becoming a giant table. */
.iot12-featured{
 background:var(--iot-paper)!important;
 color:var(--iot-ink)!important;
 padding:9vw 5vw!important
}
.iot12-featured-stream{
 margin-top:55px;
 max-width:1120px;
 font:400 clamp(26px,3.3vw,52px)/1.35 var(--iot-serif);
 letter-spacing:-.035em
}
.iot12-featured-stream a{
 display:inline!important;
 color:var(--iot-ink)!important;
 border-bottom:1px solid transparent;
 transition:border-color .18s ease,opacity .18s ease
}
.iot12-featured-stream a:hover{border-color:currentColor;opacity:.62}
.iot12-featured-sep{
 display:inline;
 padding:0 .22em;
 color:#aaa39b;
 font-weight:300
}
.iot12-featured-history{
 margin:38px 0 0;
 font:14px var(--iot-serif)
}
.iot12-featured-history a{
 color:var(--iot-ink)!important;
 border-bottom:1px solid currentColor;
 padding-bottom:3px
}
/* Old two-column/list/logo implementations must never show. */
.iot12-featured-list,.iot12-logo-grid{display:none!important}


/* V0.17: the chapter navigation mirrors the long homepage. Collapse it before labels crowd the header. */
@media(max-width:1450px){
 .iot12-header .iot12-nav{display:none}
 .iot12-header .iot12-toggle{display:block}
 .iot12-header .iot12-nav.open{
   display:flex;position:absolute;top:78px;left:0;right:0;max-height:calc(100vh - 78px);overflow:auto;
   padding:28px 4vw;background:rgba(5,6,7,.97);flex-direction:column;align-items:flex-start;gap:18px
 }
 .iot12-header .iot12-nav a{font-size:22px}
}
@media(max-width:1020px){
 .iot12-view-all{align-items:flex-start;flex-direction:column}
 .iot12-participate-columns{grid-template-columns:1fr}
 .iot12-featured-list{grid-template-columns:1fr}
 .iot12-featured-list a:nth-child(odd),.iot12-featured-list a:nth-child(even){
   padding-left:0;padding-right:0;border-left:0
 }

 .iot12-stats{grid-template-columns:1fr 1fr}
 .iot12-stats-intro{grid-column:1/-1}
 .iot12-process{grid-template-columns:1fr}
 .iot12-logo-grid{grid-template-columns:repeat(3,1fr)}
 body.iot12-commerce ul.products{grid-template-columns:1fr!important}
 body.iot12-commerce.single-product div.product{grid-template-columns:1fr!important}
 body.iot12-commerce.single-product div.product .woocommerce-product-gallery img{min-height:68vh!important}
 body.iot12-commerce.single-product div.product .summary{min-height:auto!important}

 .iot12-nav{display:none}
 .iot12-toggle{display:block}
 .iot12-nav.open{
   display:flex;position:absolute;top:78px;left:0;right:0;
   padding:28px 4vw;background:rgba(5,6,7,.97);flex-direction:column;align-items:flex-start
 }
 .iot12-nav a{font-size:22px}
 .iot12-layout,.iot12-kit,.iot12-single-tear,.iot12-footer-top{grid-template-columns:1fr}
 .iot12-copy-columns{grid-template-columns:1fr}
 .iot12-tears,.iot12-wall,.iot12-shop{grid-template-columns:1fr}
 .iot12-tear,.iot12-wall figure{height:78vh}
 .iot12-kit-media{min-height:72vh}
 .iot12-event,.iot12-jrow{grid-template-columns:100px 1fr}
 .iot12-event>b,.iot12-jrow>b{display:none}
 .iot12-single-image{height:75vh}
 .iot12-footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
 .iot12-carousel-item{flex-basis:100%!important;height:72vh!important;min-height:520px!important}
 .iot12-carousel-arrow{
   opacity:.86!important;pointer-events:auto!important;width:46px!important;height:46px!important
 }
 .iot12-carousel-prev{left:12px!important}.iot12-carousel-next{right:12px!important}
 .iot12-featured-stream{font-size:29px;line-height:1.42}

 .iot12-carousel-item{flex-basis:100%;height:72vh;min-height:520px}
 .iot12-participate-products{grid-template-columns:1fr}
 .iot12-participate-product{height:68vh;min-height:520px}
 .iot12-participate-copy{padding:70px 24px}

 .iot12-stats{grid-template-columns:1fr}
 .iot12-stat{border-right:0;border-top:1px solid rgba(0,0,0,.15)}
 .iot12-logo-grid{grid-template-columns:repeat(2,1fr)}
 .iot12-process-intro h2,.iot12-process-intro h1{font-size:62px}
 .iot12-commerce-header .iot12-nav{display:none}

 .iot12-section{padding:70px 24px}
 .iot12-hero-copy{padding:0 24px 70px}
 .iot12-hero h1{font-size:62px}
 .iot12-tear{min-height:540px}
 .iot12-kit-media{grid-template-columns:1fr}
 .iot12-kit-media>div:nth-child(2){display:none}
 .iot12-kit-copy{padding:60px 24px}
 .iot12-process-overview{height:72vh}
 .iot12-process-caption{left:20px;right:20px;bottom:20px}
 .iot12-footer{padding:70px 24px 30px}
 .iot12-footer-grid{grid-template-columns:1fr}
 .iot12-footer-bottom{flex-direction:column}

 .iot12-public-intro{font-size:25px}
 .iot12-public-sub{font-size:17px}
 .iot12-history-header,.iot12-press-header{padding-top:130px!important}
 .iot12-history-list{padding:0 24px 70px}
 .iot12-history-event{grid-template-columns:74px 1fr!important;gap:18px!important;padding:24px 0!important}
 .iot12-history-event>span{font-size:22px!important}
 .iot12-event-type{font-size:8px}
 .iot12-featured-links{align-items:flex-start;flex-direction:column;gap:14px}
}


/* =========================================================
   V0.13 focused refinements
   ========================================================= */

/* Restored V0.4-style shop cards directly below Participate. */
.iot12-participate + .iot12-shop{border-top:1px solid rgba(255,255,255,.12)}
.iot12-shop .iot12-micro{color:#9da1a4}
.iot12-shop .iot12-product{background:#0a0b0c}
.iot12-shop .iot12-product:first-child{border-right:1px solid rgba(255,255,255,.12)}

/* Carousel controls: fixed circular geometry; immune to Shopkeeper button styling. */
.iot12-carousel-arrow{
 -webkit-appearance:none!important;appearance:none!important;
 box-sizing:border-box!important;
 width:54px!important;min-width:54px!important;max-width:54px!important;
 height:54px!important;min-height:54px!important;max-height:54px!important;
 padding:0!important;margin:0!important;
 border-radius:999px!important;
 font-family:Arial,sans-serif!important;font-weight:400!important;
 text-transform:none!important;letter-spacing:0!important;
 box-shadow:none!important
}
.iot12-carousel-track{will-change:transform}

/* TEDx now receives the same editorial introduction rhythm as the other chapters. */
.iot12-tedx-intro{background:var(--iot-black)!important;color:var(--iot-white)!important}
.iot12-tedx-intro .iot12-micro{color:#8f9498!important}
.iot12-tedx-intro h2,.iot12-tedx-intro h1,.iot12-tedx-intro .iot12-lead-strong{color:var(--iot-white)!important}
.iot12-tedx-intro .iot12-lead-strong{max-width:900px}
.iot12-tedx-columns{margin-top:50px}
.iot12-tedx-columns p{color:#d3d1cb!important}

@media(max-width:1020px){
 .iot12-shop .iot12-product:first-child{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}
}
@media(max-width:650px){
 .iot12-carousel-arrow{
   width:46px!important;min-width:46px!important;max-width:46px!important;
   height:46px!important;min-height:46px!important;max-height:46px!important
 }
}


/* =========================================================
   V0.14 focused refinements
   ========================================================= */

/* 04 · How the work looks: fixed two-image presentation, no slider UI. */
.iot12-artwork-pair{
 display:grid;
 grid-template-columns:1fr 1fr;
 background:#0b0c0d;
 color:#fff
}
.iot12-artwork-pair-item{
 position:relative;
 height:88vh;
 min-height:660px;
 margin:0;
 overflow:hidden;
 background:#0b0c0d
}
.iot12-artwork-pair-item img{
 width:100%;
 height:100%;
 object-fit:cover;
 display:block
}
.iot12-artwork-pair-item figcaption{
 position:absolute;
 left:22px;
 bottom:18px;
 background:rgba(5,6,7,.72);
 color:#fff;
 padding:9px 11px;
 font:10px var(--iot-mono);
 text-transform:uppercase;
 letter-spacing:.08em;
 backdrop-filter:blur(7px)
}
/* No legacy carousel controls should appear in V0.14. */
.iot12-carousel,.iot12-carousel-arrow,.iot12-carousel-controls{display:none!important}

/* Supplied Tear Collection Kit photograph should remain fully legible. */
.iot12-product-img-kit{
 background:#15191d
}
.iot12-product-img-kit img{
 object-fit:cover!important;
 object-position:center!important;
 padding:0!important;
 box-sizing:border-box
}
.iot12-product-price{
 margin:18px 0 24px;
 color:#fff;
 font:400 16px/1.4 var(--iot-mono)
}
.iot12-product-price .amount{
 color:#fff!important
}

/* Dedicated press archive link remains below the Featured stream. */
.iot12-featured-history{
 margin-top:42px!important
}
.iot12-featured-history a{
 display:inline-block!important
}

@media(max-width:760px){
 .iot12-artwork-pair{grid-template-columns:1fr}
 .iot12-artwork-pair-item{height:72vh;min-height:520px}
 .iot12-product-img-kit img{padding:0!important}
}


/* V0.15 — SEO chapter landing pages */
.iot12-chapter-header{padding-top:150px!important;border-bottom:1px solid rgba(0,0,0,.14)}
.iot12-chapter-header .iot12-content h1{
 font:400 clamp(58px,8vw,126px)/.9 var(--iot-serif);
 letter-spacing:-.055em;margin:0;color:var(--iot-ink)!important;max-width:1100px
}
.iot12-chapter-return{margin:34px 0 0}
.iot12-chapter-return a,.iot12-context-band a,.iot12-section-link a,.iot12-journal-more a{
 color:inherit!important;border-bottom:1px solid currentColor;padding-bottom:3px;font-size:13px
}
.iot12-context-band{padding:28px 5vw;background:#d2ccc3;color:#111;border-top:1px solid rgba(0,0,0,.16);border-bottom:1px solid rgba(0,0,0,.16)}
.iot12-section-link{padding:22px 5vw 52px;background:var(--iot-paper);color:var(--iot-ink)}
.iot12-section-link.warm-link{background:var(--iot-warm)}
.iot12-section-link.dark-link{background:var(--iot-black);color:var(--iot-white)}
.iot12-journal-more{margin:34px 0 0}

/* V0.15 — Work in progress / 3D tear translation */
.iot12-wip{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr);background:#0b0c0e;color:var(--iot-white);min-height:88vh}
.iot12-wip-media{position:relative;min-height:720px;overflow:hidden;background:#111}
.iot12-wip-media img{width:100%;height:100%;object-fit:cover}
.iot12-wip-caption{position:absolute;left:24px;bottom:20px;padding:8px 10px;background:rgba(5,6,7,.78);font:10px/1.4 var(--iot-mono);letter-spacing:.05em;text-transform:uppercase;color:#e4e0da}
.iot12-wip-copy{padding:7vw 5vw;display:flex;flex-direction:column;justify-content:center}
.iot12-wip-copy .iot12-micro{color:#b8b8b3}
.iot12-wip-copy h2,.iot12-wip-copy h1{font:400 clamp(52px,6vw,96px)/.93 var(--iot-serif);letter-spacing:-.055em;margin:18px 0 30px;color:var(--iot-white)!important}
.iot12-wip-copy p{font:17px/1.68 var(--iot-serif);max-width:760px;color:#e8e5df;margin:0 0 18px}
.iot12-wip-copy p.iot12-wip-lead{font:600 clamp(21px,2vw,31px)/1.42 var(--iot-serif);color:#fff;margin-bottom:28px}
.iot12-wip-copy a{color:#fff!important;border-bottom:1px solid rgba(255,255,255,.55)}
.iot12-wip-path{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:22px 0 8px;padding-top:20px;border-top:1px solid rgba(255,255,255,.18);font:10px/1.4 var(--iot-mono);letter-spacing:.06em;text-transform:uppercase;color:#d8d5cf}
.iot12-wip-path b{font-weight:400;color:#777}
.iot12-wip-more{align-self:flex-start;margin-top:20px;font-size:13px;padding-bottom:3px}

@media(max-width:900px){
 .iot12-wip{grid-template-columns:1fr}
 .iot12-wip-media{min-height:56vh}
 .iot12-wip-copy{padding:64px 6vw 72px}
 .iot12-chapter-header{padding-top:125px!important}
}

.iot12-hero-compact h1,.iot12-hero-compact h2{font:400 clamp(70px,11vw,170px)/.84 var(--iot-serif);letter-spacing:-.065em;margin:18px 0 30px;color:var(--iot-white)!important}

.iot12-wip-copy h3{font:500 clamp(24px,2.2vw,34px)/1.2 var(--iot-serif);margin:20px 0 14px;color:var(--iot-white)!important}
.iot12-wip-copy .iot12-wip-detail{color:#c9c7c2}


/* =========================================================
   V0.17 — aligned editorial headings + standalone SEO pages
   ========================================================= */
.iot12-aligned-content{
 max-width:1120px;
 width:100%;
 margin:0;
}
.iot12-aligned-content>.iot12-micro{
 margin:0 0 18px;
}
.iot12-aligned-content>h1,
.iot12-aligned-content>h2{
 font:400 clamp(56px,8vw,124px)/.92 var(--iot-serif);
 letter-spacing:-.055em;
 margin:0;
 color:inherit;
}
.iot12-chapter-header .iot12-chapter-content{
 max-width:1120px;
}
.iot12-chapter-header .iot12-chapter-content h1{
 font:400 clamp(58px,8vw,126px)/.9 var(--iot-serif);
 letter-spacing:-.055em;
 margin:0;
 color:var(--iot-ink)!important;
}
.iot12-public-home .iot12-content,
.iot12-history-header .iot12-content,
.iot12-press-header .iot12-content,
.iot12-featured .iot12-content,
.iot12-tedx-intro .iot12-content{
 max-width:1120px;
 margin:0;
}
.iot12-tedx-intro .iot12-aligned-content>h1,
.iot12-tedx-intro .iot12-aligned-content>h2{
 color:var(--iot-white)!important;
}
/* Duplicate-page navigation introduced in V0.15 is intentionally suppressed. */
.iot12-chapter-return,
.iot12-context-band,
.iot12-section-link,
.iot12-wip-more{display:none!important}

/* Matching V4 webshop compositions: both product images fill the same frame. */
.iot12-product-img-kit img{
 width:100%!important;
 height:100%!important;
 object-fit:cover!important;
 object-position:center!important;
 padding:0!important;
}

@media(max-width:760px){
 .iot12-aligned-content>.iot12-micro{margin-bottom:14px}
}

/* ========================================================================
   V0.30 — unified navigation, customer pages and WooCommerce storefront
   ======================================================================== */

/* Header: the project sequence stays primary; Shop and Cart are utilities. */
.iot12-header{
 height:78px!important;
 padding:0 clamp(22px,3vw,54px)!important;
 display:grid!important;
 grid-template-columns:auto minmax(0,1fr)!important;
 align-items:center!important;
 gap:28px!important;
 background:rgba(5,6,7,.84)!important;
 backdrop-filter:blur(14px)!important;
 -webkit-backdrop-filter:blur(14px)!important;
}
.iot12-header.scrolled{background:rgba(5,6,7,.96)!important}
.iot12-logo{font-size:20px!important;line-height:.94!important;white-space:nowrap}
.iot12-header-panel{
 min-width:0;
 display:flex;
 align-items:center;
 justify-content:flex-end;
 gap:clamp(18px,1.8vw,34px);
}
.iot12-header .iot12-nav{
 min-width:0;
 display:flex;
 align-items:center;
 justify-content:flex-end;
 gap:clamp(10px,.85vw,18px)!important;
 white-space:nowrap;
}
.iot12-header .iot12-nav a{
 font:500 12px/1.2 var(--iot-sans)!important;
 letter-spacing:.005em!important;
 color:var(--iot-white)!important;
 padding:9px 0!important;
}
.iot12-header-utilities{
 flex:none;
 display:flex;
 align-items:center;
 gap:16px;
 padding-left:22px;
 border-left:1px solid rgba(255,255,255,.2);
}
.iot12-shop-link{
 font:600 12px/1 var(--iot-sans)!important;
 color:#fff!important;
 padding:9px 0;
}
.iot12-cart-link{
 position:relative;
 width:34px;height:34px;
 display:inline-flex!important;
 align-items:center;justify-content:center;
 color:#fff!important;
}
.iot12-cart-icon{
 font-family:'Shopkeeper-Icon-Font'!important;
 font-style:normal!important;
 font-size:20px!important;
 line-height:1!important;
}
.iot12-cart-count{
 position:absolute;
 top:-1px;right:-6px;
 min-width:17px;height:17px;
 padding:0 4px;
 display:flex;align-items:center;justify-content:center;
 border-radius:99px;
 background:#fff;color:#111;
 font:700 9px/17px var(--iot-sans);
}
.iot12-toggle{
 justify-self:end;
 width:34px;height:34px;padding:0!important;
 position:relative;
}
.iot12-toggle span{
 position:absolute;left:5px;right:5px;height:1px;background:#fff;transition:.2s ease
}
.iot12-toggle span:first-child{top:12px}
.iot12-toggle span:last-child{top:21px}
.iot12-header.menu-open .iot12-toggle span:first-child{transform:translateY(4.5px) rotate(45deg)}
.iot12-header.menu-open .iot12-toggle span:last-child{transform:translateY(-4.5px) rotate(-45deg)}

/* Commerce uses the exact same header treatment. */
.iot12-commerce-header{background:rgba(5,6,7,.96)!important}
body.iot12-commerce{padding-top:78px!important;background:var(--iot-paper)!important}
body.iot12-commerce #masthead,
body.iot12-commerce .site-header,
body.iot12-commerce .top-headers-wrapper,
body.iot12-commerce .shopkeeper-mini-cart,
body.iot12-commerce footer.site-footer,
body.iot12-commerce .site-footer,
body.iot12-commerce #site-footer,
body.iot12-commerce .footer-wrapper,
body.iot12-commerce .site-footer-widget-area,
body.iot12-commerce .widget-area,
body.iot12-commerce .shop_sidebar,
body.iot12-commerce .site-search,
body.iot12-commerce .search-form{display:none!important}

/* Store intro / archive. */
body.iot12-commerce .woocommerce-products-header{display:none!important}
.iot12-commerce-intro{
 padding:clamp(70px,8vw,125px) 5vw clamp(45px,6vw,90px);
 background:var(--iot-paper);
 color:var(--iot-ink);
}
.iot12-commerce-intro h1{
 max-width:1100px;
 margin:14px 0 28px!important;
 font:400 clamp(62px,8.5vw,136px)/.88 var(--iot-serif)!important;
 letter-spacing:-.06em!important;
 color:var(--iot-ink)!important;
 text-transform:none!important;
}
.iot12-commerce-intro p{
 max-width:860px;margin:0;
 font:600 clamp(22px,2.1vw,32px)/1.42 var(--iot-serif);
}
.iot12-commerce-intro-compact{padding-bottom:35px}
.iot12-commerce-intro-compact h1{font-size:clamp(58px,7vw,105px)!important}

body.iot12-commerce .site-content,
body.iot12-commerce #page_wrapper,
body.iot12-commerce #primary,
body.iot12-commerce .content-area,
body.iot12-commerce .woocommerce{
 max-width:none!important;width:100%!important;
 background:var(--iot-paper)!important;
}
body.iot12-commerce ul.products{
 display:grid!important;
 grid-template-columns:repeat(2,minmax(0,1fr))!important;
 gap:1px!important;
 padding:1px!important;margin:0!important;
 background:rgba(0,0,0,.16)!important;
}
body.iot12-commerce ul.products li.product{
 width:auto!important;margin:0!important;padding:0 0 46px!important;
 background:var(--iot-paper)!important;
 overflow:hidden;
}
body.iot12-commerce ul.products li.product a img{
 width:100%!important;height:min(64vw,720px)!important;min-height:560px!important;
 margin:0 0 32px!important;object-fit:cover!important;background:#101113!important;
}
body.iot12-commerce ul.products li.product .woocommerce-loop-product__title,
body.iot12-commerce ul.products li.product h2,
body.iot12-commerce ul.products li.product h3{
 padding:0 4vw!important;margin:0 0 12px!important;
 font:400 clamp(36px,4vw,66px)/.96 var(--iot-serif)!important;
 letter-spacing:-.045em!important;text-transform:none!important;color:var(--iot-ink)!important;
}
body.iot12-commerce ul.products li.product .price{
 padding:0 4vw!important;margin:0!important;
 font:500 12px/1.4 var(--iot-mono)!important;color:#67645f!important;
}
body.iot12-commerce ul.products li.product .button{display:none!important}

/* Product page: editorial image / purchasing split followed by a readable long-form description. */
body.iot12-commerce.single-product .site-content{padding:0!important}
body.iot12-commerce.single-product div.product{
 display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr)!important;
 gap:0!important;max-width:none!important;margin:0!important;background:var(--iot-paper)!important;
}
body.iot12-commerce.single-product div.product .woocommerce-product-gallery{
 width:auto!important;float:none!important;margin:0!important;background:#090a0b!important;
 align-self:stretch;
}
body.iot12-commerce.single-product div.product .woocommerce-product-gallery img{
 width:100%!important;height:auto!important;min-height:calc(100vh - 78px)!important;
 max-height:calc(100vh - 78px)!important;object-fit:contain!important;background:#090a0b!important;
}
body.iot12-commerce.single-product div.product .summary{
 width:auto!important;float:none!important;margin:0!important;
 min-height:calc(100vh - 78px)!important;padding:clamp(60px,7vw,115px) 5vw!important;
 display:flex;flex-direction:column;justify-content:center;
}
body.iot12-commerce.single-product .product_title{
 margin:0 0 22px!important;
 font:400 clamp(58px,6.7vw,108px)/.9 var(--iot-serif)!important;
 letter-spacing:-.055em!important;text-transform:none!important;color:var(--iot-ink)!important;
}
body.iot12-commerce.single-product .summary>.price{
 margin:0 0 30px!important;font:500 12px/1.5 var(--iot-mono)!important;color:#66625e!important
}
body.iot12-commerce.single-product .woocommerce-product-details__short-description{
 max-width:690px;font:19px/1.63 var(--iot-serif)!important;color:#262421!important
}
body.iot12-commerce.single-product .woocommerce-product-details__short-description p{margin-bottom:14px!important}
body.iot12-commerce.single-product .woocommerce-product-details__short-description ul{margin:20px 0 0 18px!important}
body.iot12-commerce.single-product table.variations{width:100%!important;margin:28px 0 12px!important}
body.iot12-commerce.single-product table.variations label{
 font:600 11px/1.2 var(--iot-sans)!important;text-transform:uppercase;letter-spacing:.08em
}
body.iot12-commerce select,
body.iot12-commerce input.input-text,
body.iot12-commerce input[type=email],
body.iot12-commerce input[type=tel],
body.iot12-commerce input[type=text],
body.iot12-commerce textarea,
body.iot12-commerce .select2-selection{
 min-height:50px!important;border:1px solid #b8b2aa!important;border-radius:0!important;
 background:#fff!important;color:#111!important;box-shadow:none!important
}
body.iot12-commerce.single-product .single_add_to_cart_button,
body.iot12-commerce .checkout-button,
body.iot12-commerce button.button,
body.iot12-commerce a.button,
body.iot12-commerce input.button{
 min-height:48px!important;border:1px solid #111!important;border-radius:999px!important;
 padding:14px 21px!important;background:#111!important;color:#fff!important;
 font:600 12px/1 var(--iot-sans)!important;text-transform:none!important;letter-spacing:0!important
}
body.iot12-commerce.single-product .product_meta{
 margin-top:34px!important;padding-top:22px!important;border-top:1px solid rgba(0,0,0,.16)!important;
 font:10px/1.6 var(--iot-mono)!important;letter-spacing:.07em!important;text-transform:uppercase!important;color:#777!important
}
body.iot12-commerce.single-product .woocommerce-tabs,
body.iot12-commerce.single-product .related.products,
body.iot12-commerce.single-product .up-sells{
 grid-column:1/-1!important;width:100%!important;float:none!important;
 padding:clamp(70px,8vw,120px) 5vw!important;margin:0!important;background:var(--iot-paper)!important;
}
body.iot12-commerce.single-product .woocommerce-tabs ul.tabs{display:none!important}
body.iot12-commerce.single-product .woocommerce-Tabs-panel{display:block!important;max-width:960px!important;margin:0 auto!important}
body.iot12-commerce.single-product .woocommerce-Tabs-panel>h2{display:none!important}
body.iot12-commerce.single-product .woocommerce-Tabs-panel h3,
body.iot12-commerce.single-product .woocommerce-Tabs-panel h4{
 margin:52px 0 18px!important;font:400 clamp(31px,3.5vw,50px)/1.05 var(--iot-serif)!important;
 letter-spacing:-.035em!important;color:var(--iot-ink)!important;text-transform:none!important
}
body.iot12-commerce.single-product .woocommerce-Tabs-panel p,
body.iot12-commerce.single-product .woocommerce-Tabs-panel li{
 font:18px/1.72 var(--iot-serif)!important;color:#292724!important
}
body.iot12-commerce.single-product .woocommerce-Tabs-panel hr{border:0!important;border-top:1px solid rgba(0,0,0,.16)!important;margin:44px 0!important}
body.iot12-commerce.single-product .related.products>h2,
body.iot12-commerce.single-product .up-sells>h2{
 font:400 clamp(48px,5vw,82px)/.94 var(--iot-serif)!important;letter-spacing:-.05em!important;text-transform:none!important
}

/* Cart / checkout */
body.iot12-commerce.woocommerce-cart .page-title,
body.iot12-commerce.woocommerce-checkout .page-title{display:none!important}
body.iot12-commerce.woocommerce-cart .woocommerce,
body.iot12-commerce.woocommerce-checkout .woocommerce,
body.iot12-commerce.woocommerce-account .woocommerce{
 max-width:1200px!important;margin:0 auto!important;padding:0 5vw clamp(80px,8vw,130px)!important;background:var(--iot-paper)!important
}
body.iot12-commerce table.shop_table{
 border:0!important;border-radius:0!important;border-collapse:collapse!important;background:transparent!important
}
body.iot12-commerce table.shop_table td,
body.iot12-commerce table.shop_table th{
 padding:20px 10px!important;border:0!important;border-bottom:1px solid rgba(0,0,0,.15)!important;
 color:var(--iot-ink)!important;font-family:var(--iot-serif)!important
}
body.iot12-commerce .cart_totals,
body.iot12-commerce .woocommerce-checkout-review-order,
body.iot12-commerce .woocommerce-billing-fields,
body.iot12-commerce .woocommerce-shipping-fields{
 background:#e7e1d8!important;padding:28px!important
}
body.iot12-commerce .cart_totals h2,
body.iot12-commerce .woocommerce-billing-fields h3,
body.iot12-commerce .woocommerce-additional-fields h3,
body.iot12-commerce #order_review_heading{
 margin:0 0 24px!important;font:400 clamp(34px,4vw,54px)/1 var(--iot-serif)!important;text-transform:none!important;letter-spacing:-.035em!important
}
body.iot12-commerce .woocommerce-info,
body.iot12-commerce .woocommerce-message,
body.iot12-commerce .woocommerce-error{
 margin:0 0 24px!important;padding:17px 20px!important;
 border:1px solid rgba(0,0,0,.16)!important;border-top-width:1px!important;background:transparent!important;color:var(--iot-ink)!important
}
body.iot12-commerce .cart-empty.woocommerce-info{
 max-width:760px!important;margin:25px 0 28px!important;font:21px/1.5 var(--iot-serif)!important
}
body.iot12-commerce .cart-empty.woocommerce-info + .cart-empty.woocommerce-info{display:none!important}
body.iot12-commerce .return-to-shop{margin-top:20px!important}
body.iot12-commerce form .form-row label{font:600 11px/1.3 var(--iot-sans)!important;text-transform:uppercase;letter-spacing:.07em;color:#3f3c38!important}
body.iot12-commerce #payment{background:#e7e1d8!important;border-radius:0!important}
body.iot12-commerce #payment ul.payment_methods{border-bottom:1px solid rgba(0,0,0,.15)!important}

/* Utility pages: Terms, Return Policy, Privacy and Tear Collection Kit activation. */
body.iot12-utility{background:var(--iot-paper)!important}
.iot12-utility-page{padding-top:78px;background:var(--iot-paper);min-height:100vh;color:var(--iot-ink)}
.iot12-utility-head{
 padding:clamp(75px,8vw,125px) 5vw clamp(50px,6vw,90px);
 border-bottom:1px solid rgba(0,0,0,.16);
}
.iot12-utility-head-inner{max-width:1180px;margin:0 auto}
.iot12-utility-head h1{
 max-width:1100px;margin:15px 0 30px;
 font:400 clamp(62px,8.5vw,136px)/.88 var(--iot-serif);
 letter-spacing:-.06em;color:var(--iot-ink)
}
.iot12-utility-lead{max-width:850px;margin:0;font:600 clamp(21px,2.2vw,32px)/1.45 var(--iot-serif)}
.iot12-utility-body{padding:clamp(60px,7vw,105px) 5vw clamp(90px,9vw,145px)}
.iot12-utility-content{max-width:920px;margin:0 auto;font:17px/1.72 var(--iot-serif);color:#272522}
.iot12-utility-content h2,
.iot12-utility-content h3,
.iot12-utility-content h4{
 margin:55px 0 18px;font:400 clamp(30px,3.4vw,48px)/1.08 var(--iot-serif);letter-spacing:-.035em;text-transform:none;color:var(--iot-ink)
}
.iot12-utility-content p{margin:0 0 20px}
.iot12-utility-content ol,.iot12-utility-content ul{margin:0 0 30px 1.3em;padding:0}
.iot12-utility-content li{margin:7px 0}
.iot12-utility-content a{color:var(--iot-ink)!important;border-bottom:1px solid currentColor}
.iot12-utility-content hr{border:0;border-top:1px solid rgba(0,0,0,.15);margin:50px 0}

/* Unified full footer on project, customer and commerce pages. */
body.iot12-commerce .iot12-footer{display:block!important}

@media(max-width:1540px){
 .iot12-header{grid-template-columns:auto 1fr auto!important}
 .iot12-toggle{display:block!important}
 .iot12-header-panel{
   display:none!important;position:absolute;top:78px;left:0;right:0;
   max-height:calc(100vh - 78px);overflow:auto;
   padding:34px clamp(24px,4vw,60px) 42px;
   background:rgba(5,6,7,.985);border-top:1px solid rgba(255,255,255,.15);
 }
 .iot12-header.menu-open .iot12-header-panel{display:block!important}
 .iot12-header .iot12-nav{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 34px!important;white-space:normal}
 .iot12-header .iot12-nav a{
   padding:16px 0!important;border-bottom:1px solid rgba(255,255,255,.13);
   font:400 19px/1.2 var(--iot-serif)!important
 }
 .iot12-header-utilities{
   margin-top:30px;padding:24px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.18);gap:24px
 }
 .iot12-shop-link{font-size:15px!important}
}

@media(max-width:1020px){
 body.iot12-commerce ul.products{grid-template-columns:1fr!important}
 body.iot12-commerce ul.products li.product a img{height:72vh!important;min-height:520px!important}
 body.iot12-commerce.single-product div.product{grid-template-columns:1fr!important}
 body.iot12-commerce.single-product div.product .woocommerce-product-gallery img{min-height:68vh!important;max-height:80vh!important}
 body.iot12-commerce.single-product div.product .summary{min-height:auto!important}
 .iot12-header .iot12-nav{grid-template-columns:1fr 1fr}
}

@media(max-width:650px){
 .iot12-header{padding:0 22px!important}
 .iot12-header .iot12-nav{grid-template-columns:1fr}
 .iot12-header .iot12-nav a{font-size:18px!important;padding:13px 0!important}
 .iot12-header-utilities{justify-content:space-between}
 .iot12-commerce-intro,.iot12-utility-head{padding-left:24px;padding-right:24px}
 .iot12-commerce-intro h1,.iot12-utility-head h1{font-size:57px!important}
 .iot12-utility-body{padding-left:24px;padding-right:24px}
 body.iot12-commerce.woocommerce-cart .woocommerce,
 body.iot12-commerce.woocommerce-checkout .woocommerce,
 body.iot12-commerce.woocommerce-account .woocommerce{padding-left:24px!important;padding-right:24px!important}
 body.iot12-commerce.single-product div.product .summary,
 body.iot12-commerce.single-product .woocommerce-tabs,
 body.iot12-commerce.single-product .related.products,
 body.iot12-commerce.single-product .up-sells{padding-left:24px!important;padding-right:24px!important}
 body.iot12-commerce ul.products li.product .woocommerce-loop-product__title,
 body.iot12-commerce ul.products li.product h2,
 body.iot12-commerce ul.products li.product h3,
 body.iot12-commerce ul.products li.product .price{padding-left:24px!important;padding-right:24px!important}
}

/* WooCommerce wrappers / block-cart compatibility. */
body.iot12-commerce #page_wrapper,
body.iot12-commerce .site-content,
body.iot12-commerce .site-content>.row,
body.iot12-commerce .site-content>.row>.columns,
body.iot12-commerce .content-area{max-width:none!important;width:100%!important;margin:0!important;padding-top:0!important}
body.iot12-commerce .woocommerce-breadcrumb,
body.iot12-commerce .shop_header,
body.iot12-commerce .woocommerce-products-header + .woocommerce-notices-wrapper:empty{display:none!important}
body.iot12-commerce .wp-block-woocommerce-cart,
body.iot12-commerce .wp-block-woocommerce-checkout{
 max-width:1200px!important;margin:0 auto!important;padding:clamp(55px,7vw,100px) 5vw!important;background:var(--iot-paper)!important
}
body.iot12-commerce .wc-block-components-sidebar,
body.iot12-commerce .wc-block-cart__sidebar,
body.iot12-commerce .wc-block-checkout__sidebar{
 background:#e7e1d8!important;padding:26px!important
}
body.iot12-commerce .wc-block-components-title,
body.iot12-commerce .wc-block-components-checkout-step__title,
body.iot12-commerce .wc-block-cart__totals-title{
 font-family:var(--iot-serif)!important;text-transform:none!important;letter-spacing:-.025em!important;color:var(--iot-ink)!important
}
body.iot12-commerce .wc-block-components-button{
 border-radius:999px!important;background:#111!important;color:#fff!important;min-height:50px!important
}
body.iot12-commerce .wc-block-components-text-input input,
body.iot12-commerce .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input{
 border-radius:0!important;background:#fff!important;border-color:#aaa39a!important
}
.iot12-header .iot12-nav>li{list-style:none!important;margin:0!important;padding:0!important;display:block!important}
.iot12-header .iot12-nav>li>a{display:block!important}

/* ========================================================================
   V0.30 — final navigation naming + restored editorial serif typography
   ======================================================================== */
.iot12-header .iot12-nav a{
  font-family:var(--iot-serif)!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:1!important;
  letter-spacing:-.01em!important;
}
.iot12-shop-link{
  font-family:var(--iot-serif)!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:1!important;
  letter-spacing:-.01em!important;
}
@media(max-width:1540px){
  .iot12-header .iot12-nav a{
    font-family:var(--iot-serif)!important;
    font-size:19px!important;
    font-weight:400!important;
    line-height:1.2!important;
    letter-spacing:-.01em!important;
  }
  .iot12-shop-link{
    font-family:var(--iot-serif)!important;
    font-size:17px!important;
    font-weight:400!important;
  }
}
@media(max-width:650px){
  .iot12-header .iot12-nav a{font-size:18px!important}
}

/* V0.30 — Terms & Conditions document hierarchy. The legal wording stays in the WordPress editor; this only fixes presentation. */
.iot12-utility-terms .iot12-utility-content{max-width:1040px}
.iot12-terms-document{counter-reset:iotterms}
.iot12-terms-section{
 display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.65fr);
 gap:clamp(28px,5vw,84px);
 padding:clamp(34px,4.5vw,64px) 0;
 border-top:1px solid rgba(0,0,0,.16)
}
.iot12-terms-section:first-child{border-top:0;padding-top:0}
.iot12-terms-section h2{
 margin:0!important;font:400 clamp(27px,2.7vw,40px)/1.07 var(--iot-serif)!important;
 letter-spacing:-.035em!important;align-self:start
}
.iot12-terms-section>ol,
.iot12-terms-section>ul,
.iot12-terms-section>p{
 grid-column:2;margin-top:0!important
}
.iot12-terms-section>ol,
.iot12-terms-section>ul{margin-left:0!important;padding-left:1.55em!important}
.iot12-terms-section>ol{list-style-position:outside}
.iot12-terms-section li{padding-left:.25em;margin:0 0 12px!important}
.iot12-terms-section li:last-child{margin-bottom:0!important}
.iot12-terms-section li>span{display:inline}
.iot12-terms-section li ul{
 margin:10px 0 2px!important;padding-left:1.35em!important;list-style:disc
}
.iot12-terms-section p{margin-bottom:0!important}
@media(max-width:760px){
 .iot12-terms-section{grid-template-columns:1fr;gap:18px;padding:38px 0}
 .iot12-terms-section>ol,.iot12-terms-section>ul,.iot12-terms-section>p{grid-column:1}
}

/* V0.30 — Return Policy semantic presentation + project source link. */
.iot12-utility-return-policy .iot12-utility-content{max-width:1040px}
.iot12-return-document{font:17px/1.72 var(--iot-serif);color:#272522}
.iot12-return-intro{max-width:860px;margin:0 0 clamp(48px,6vw,78px)}
.iot12-return-intro p{margin:0 0 24px!important}
.iot12-return-intro p:last-child{margin-bottom:0!important}
.iot12-return-document strong{font-weight:700}
.iot12-return-section{
  display:grid;
  grid-template-columns:minmax(210px,280px) minmax(0,1fr);
  gap:clamp(32px,5vw,82px);
  padding:clamp(42px,5vw,68px) 0;
  border-top:1px solid rgba(0,0,0,.16)
}
.iot12-return-section h2{
  margin:0!important;
  font:600 clamp(23px,2.15vw,34px)/1.14 var(--iot-serif)!important;
  letter-spacing:-.025em;
  text-transform:none!important
}
.iot12-return-section-copy{max-width:690px}
.iot12-return-section-copy p{margin:0 0 22px!important}
.iot12-return-section-copy p:last-child{margin-bottom:0!important}
@media(max-width:760px){
  .iot12-return-section{grid-template-columns:1fr;gap:18px;padding:38px 0}
  .iot12-return-intro{margin-bottom:42px}
}

/* ========================================================================
   V0.30 — structural WooCommerce rebuild
   Shopkeeper's legacy Woo layouts are bypassed/reset; commerce now follows
   the same Imaginarium editorial grid as the main project site.
   ======================================================================== */

/* All commerce canvases use one continuous paper background with no ghost strip. */
body.iot12-commerce,
body.iot12-commerce #page_wrapper,
body.iot12-commerce .site-content,
body.iot12-commerce #primary,
body.iot12-commerce .content-area,
body.iot12-commerce .page-container,
body.iot12-commerce .page-content,
body.iot12-commerce .entry-content,
body.iot12-commerce .woocommerce,
body.iot12-commerce .iot26-commerce-main,
body.iot12-commerce .iot26-commerce-content{
  background:var(--iot-paper)!important;
  min-height:0!important;
}
body.iot12-commerce .iot12-footer{margin-top:0!important}
body.iot12-commerce .woocommerce-result-count,
body.iot12-commerce .woocommerce-ordering,
body.iot12-commerce .products_ajax_button,
body.iot12-commerce .shopkeeper-product-sort,
body.iot12-commerce .shopkeeper-mini-cart{display:none!important}

/* Store heading is rendered exactly once by the child Woo canvas. */
.iot12-commerce-intro-inner{max-width:1360px;margin:0 auto}
.iot26-store-intro{padding-top:clamp(72px,8vw,120px)!important;padding-bottom:clamp(56px,6vw,88px)!important}
.iot26-store-intro h1{max-width:1050px!important}

/* Product archive: deterministic two-card grid, no Shopkeeper staggering/transforms. */
body.iot12-commerce .iot26-commerce-content{width:100%!important;margin:0!important;padding:0!important}
body.iot12-commerce .iot26-commerce-content>.woocommerce{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
body.iot12-commerce ul.products,
body.iot12-commerce .products{
  width:min(1360px,90vw)!important;
  max-width:1360px!important;
  margin:0 auto!important;
  padding:0 0 clamp(90px,9vw,145px)!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(24px,3vw,48px)!important;
  background:transparent!important;
  list-style:none!important;
}
body.iot12-commerce ul.products::before,
body.iot12-commerce ul.products::after{display:none!important}
body.iot12-commerce ul.products li.product.iot26-store-card,
body.iot12-commerce li.product.iot26-store-card{
  float:none!important;clear:none!important;
  width:auto!important;max-width:none!important;height:auto!important;
  margin:0!important;padding:0!important;
  position:relative!important;inset:auto!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;
  transform:none!important;translate:none!important;
  background:transparent!important;overflow:visible!important;
}
.iot26-store-card-link{display:block!important;color:var(--iot-ink)!important;text-decoration:none!important}
.iot26-store-card-media{
  margin:0 0 26px!important;
  width:100%!important;aspect-ratio:4/3!important;
  overflow:hidden!important;background:#111!important;
}
.iot26-store-card-media img{
  display:block!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;
  margin:0!important;padding:0!important;object-fit:cover!important;object-position:center!important;
  transform:none!important;transition:transform .45s ease!important;
}
.iot26-store-card-link:hover .iot26-store-card-media img{transform:scale(1.018)!important}
.iot26-store-card-copy{padding:0 2px 0!important}
body.iot12-commerce .iot26-store-card .iot12-micro{margin-bottom:12px;color:#74716c}
body.iot12-commerce .iot26-store-card .woocommerce-loop-product__title{
  padding:0!important;margin:0 0 11px!important;
  font:400 clamp(38px,4.2vw,64px)/.94 var(--iot-serif)!important;
  letter-spacing:-.045em!important;color:var(--iot-ink)!important;text-transform:none!important;
}
body.iot12-commerce .iot26-store-card .price{
  padding:0!important;margin:0 0 23px!important;
  font:500 12px/1.45 var(--iot-mono)!important;color:#65615c!important;
}
.iot26-store-card-cta{font:600 12px/1 var(--iot-sans);border-bottom:1px solid currentColor;padding-bottom:3px}

/* Single product: full centred composition, large usable purchase column. */
body.iot12-commerce.single-product .iot26-commerce-content{padding:0!important}
body.iot12-commerce.single-product .woocommerce-notices-wrapper{width:min(1440px,90vw);margin:0 auto}
body.iot12-commerce.single-product .iot26-single-product{
  width:100%!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important;background:var(--iot-paper)!important
}
.iot26-product-top{
  width:min(1500px,92vw);max-width:1500px;margin:0 auto;
  padding:clamp(62px,7vw,105px) 0 clamp(80px,8vw,120px);
  display:grid;grid-template-columns:minmax(0,1.08fr) minmax(520px,.92fr);gap:clamp(58px,6vw,110px);align-items:start;
}
.iot26-product-media{min-width:0;position:relative}
body.iot12-commerce.single-product .iot26-product-media .woocommerce-product-gallery{
  width:100%!important;max-width:none!important;float:none!important;margin:0!important;padding:0!important;background:transparent!important
}
body.iot12-commerce.single-product .iot26-product-media .woocommerce-product-gallery__wrapper{margin:0!important}
body.iot12-commerce.single-product .iot26-product-media .woocommerce-product-gallery__image{
  width:100%!important;float:none!important;margin:0!important;background:#111!important
}
body.iot12-commerce.single-product .iot26-product-media .woocommerce-product-gallery__image img{
  display:block!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;object-fit:contain!important;background:#111!important
}
body.iot12-commerce.single-product .iot26-product-media .flex-control-thumbs{
  display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px!important;margin:12px 0 0!important;padding:0!important;list-style:none!important
}
body.iot12-commerce.single-product .iot26-product-media .flex-control-thumbs li{width:auto!important;float:none!important;margin:0!important}
body.iot12-commerce.single-product .iot26-product-media .flex-control-thumbs img{width:100%!important;height:auto!important;min-height:0!important;margin:0!important;cursor:pointer}
.iot26-product-summary{width:100%!important;max-width:680px!important;float:none!important;margin:0!important;padding:12px 0 0!important;min-height:0!important;display:block!important}
.iot26-product-summary>.iot12-micro{margin-bottom:18px}
body.iot12-commerce.single-product .iot26-product-summary .product_title{
  max-width:650px!important;margin:0 0 22px!important;
  font:400 clamp(64px,6.2vw,104px)/.86 var(--iot-serif)!important;
  letter-spacing:-.058em!important;text-transform:none!important;color:var(--iot-ink)!important;
}
body.iot12-commerce.single-product .iot26-product-summary>.price{
  margin:0 0 30px!important;font:500 12px/1.5 var(--iot-mono)!important;color:#66615c!important
}
body.iot12-commerce.single-product .iot26-product-summary .woocommerce-product-details__short-description{
  max-width:650px!important;margin:0 0 32px!important;font:18px/1.62 var(--iot-serif)!important;color:#262421!important
}
body.iot12-commerce.single-product .iot26-product-summary .woocommerce-product-details__short-description p{margin:0 0 16px!important}
body.iot12-commerce.single-product .iot26-product-summary .woocommerce-product-details__short-description ul{margin:18px 0 0 1.15em!important;padding:0!important}
.iot26-purchase-panel{max-width:650px;margin-top:28px;padding-top:26px;border-top:1px solid rgba(0,0,0,.16)}
body.iot12-commerce.single-product .iot26-purchase-panel table.variations{width:100%!important;margin:0 0 18px!important}
body.iot12-commerce.single-product .iot26-purchase-panel .variations th,
body.iot12-commerce.single-product .iot26-purchase-panel .variations td{display:block!important;width:100%!important;padding:0 0 10px!important;border:0!important;text-align:left!important}
body.iot12-commerce.single-product .iot26-purchase-panel select{width:100%!important;max-width:none!important}
body.iot12-commerce.single-product .iot26-purchase-panel .woocommerce-variation-price{margin:12px 0 18px!important}
body.iot12-commerce.single-product .iot26-purchase-panel .quantity{float:left!important;margin:0 12px 0 0!important}
body.iot12-commerce.single-product .iot26-purchase-panel .quantity input.qty{width:74px!important;min-height:50px!important;background:#fff!important;border:1px solid #aaa39a!important}
body.iot12-commerce.single-product .iot26-purchase-panel .single_add_to_cart_button{min-width:210px!important;opacity:1!important;visibility:visible!important}
body.iot12-commerce.single-product .iot26-product-summary .product_meta{max-width:650px!important}

/* Long description becomes a left-aligned editorial article, not a narrow centred strip. */
.iot26-product-details{
  padding:clamp(80px,8vw,125px) 5vw clamp(70px,7vw,110px);
  border-top:1px solid rgba(0,0,0,.14);background:var(--iot-paper)
}
.iot26-product-details>.iot12-micro,
.iot26-product-details-copy{max-width:1120px;margin-left:max(0px,calc((100vw - 1500px)/2));margin-right:auto}
.iot26-product-details>.iot12-micro{margin-bottom:34px}
.iot26-product-details-copy{font:17px/1.68 var(--iot-serif);color:#272522}
.iot26-product-details-copy h2,
.iot26-product-details-copy h3,
.iot26-product-details-copy h4{
  max-width:900px;margin:54px 0 18px!important;
  font:400 clamp(34px,3.7vw,52px)/1.03 var(--iot-serif)!important;letter-spacing:-.037em!important;text-transform:none!important;color:var(--iot-ink)!important
}
.iot26-product-details-copy p{max-width:900px;margin:0 0 18px!important}
.iot26-product-details-copy ul,
.iot26-product-details-copy ol{max-width:900px;margin:0 0 25px 1.2em!important;padding:0!important}
.iot26-product-details-copy hr{max-width:900px;border:0!important;border-top:1px solid rgba(0,0,0,.16)!important;margin:44px 0!important}
.iot26-product-attributes{
  padding:0 5vw clamp(90px,9vw,140px);background:var(--iot-paper)
}
.iot26-product-attributes>h2,
.iot26-product-attributes>.shop_attributes{max-width:1120px;margin-left:max(0px,calc((100vw - 1500px)/2));margin-right:auto}
.iot26-product-attributes>h2{margin-top:0!important;font:400 clamp(34px,3.7vw,52px)/1 var(--iot-serif)!important;text-transform:none!important}
.iot26-product-attributes .shop_attributes{border:0!important}

/* Cart: use the page width, make actions legible and remove the dead-grey tail. */
body.iot12-commerce.woocommerce-cart .woocommerce{
  width:min(1360px,90vw)!important;max-width:1360px!important;margin:0 auto!important;
  padding:0 0 clamp(90px,8vw,125px)!important;overflow:visible!important
}
body.iot12-commerce.woocommerce-cart .woocommerce::after{content:"";display:block;clear:both}
body.iot12-commerce.woocommerce-cart form.woocommerce-cart-form{
  width:calc(100% - 440px)!important;max-width:none!important;float:left!important;margin:0!important
}
body.iot12-commerce.woocommerce-cart .cart-collaterals{
  width:390px!important;max-width:390px!important;float:right!important;margin:0!important
}
body.iot12-commerce.woocommerce-cart .cart-collaterals .cart_totals{width:100%!important;float:none!important;margin:0!important;padding:34px!important;background:var(--iot-warm)!important}
body.iot12-commerce.woocommerce-cart table.shop_table{width:100%!important}
body.iot12-commerce.woocommerce-cart table.cart .product-thumbnail{width:94px!important}
body.iot12-commerce.woocommerce-cart table.cart .product-thumbnail img{width:76px!important;height:76px!important;object-fit:cover!important}
body.iot12-commerce.woocommerce-cart table.cart .product-name a{font-weight:600!important;color:var(--iot-ink)!important}
body.iot12-commerce.woocommerce-cart table.cart .quantity .qty{width:68px!important;min-height:46px!important;background:#fff!important;border:1px solid #aaa39a!important}
body.iot12-commerce.woocommerce-cart table.cart td.actions{padding-top:28px!important}
body.iot12-commerce.woocommerce-cart table.cart td.actions .coupon{display:flex!important;align-items:center!important;gap:10px!important;float:left!important}
body.iot12-commerce.woocommerce-cart #coupon_code{width:190px!important;min-width:190px!important;margin:0!important}
body.iot12-commerce.woocommerce-cart button[name="apply_coupon"],
body.iot12-commerce.woocommerce-cart button[name="update_cart"],
body.iot12-commerce.woocommerce-cart .checkout-button{
  background:#111!important;color:#fff!important;border-color:#111!important;opacity:1!important;visibility:visible!important
}
body.iot12-commerce.woocommerce-cart button[name="update_cart"]{float:right!important}
body.iot12-commerce.woocommerce-cart .wc-proceed-to-checkout{padding:24px 0 0!important}
body.iot12-commerce.woocommerce-cart .wc-proceed-to-checkout .checkout-button{display:flex!important;width:100%!important;justify-content:center!important}
body.iot12-commerce.woocommerce-cart .return-to-shop .button{display:inline-flex!important;background:transparent!important;color:#111!important;border-color:#111!important}

/* Checkout: two generous columns on desktop, one on phone/tablet. */
body.iot12-commerce.woocommerce-checkout .woocommerce{
  width:min(1280px,90vw)!important;max-width:1280px!important;margin:0 auto!important;
  padding:0 0 clamp(90px,8vw,125px)!important;background:var(--iot-paper)!important
}
body.iot12-commerce.woocommerce-checkout form.checkout{display:block!important;width:100%!important;margin:0!important}
body.iot12-commerce.woocommerce-checkout form.checkout::after{content:"";display:block;clear:both}
body.iot12-commerce.woocommerce-checkout #customer_details{
  width:56%!important;float:left!important;margin:0!important
}
body.iot12-commerce.woocommerce-checkout #customer_details .col-1,
body.iot12-commerce.woocommerce-checkout #customer_details .col-2{
  width:100%!important;float:none!important;margin:0 0 28px!important;padding:32px!important;background:var(--iot-warm)!important
}
body.iot12-commerce.woocommerce-checkout #order_review_heading,
body.iot12-commerce.woocommerce-checkout #order_review{
  width:39%!important;float:right!important;clear:right!important;margin-left:0!important
}
body.iot12-commerce.woocommerce-checkout #order_review_heading{
  margin-top:0!important;margin-bottom:0!important;padding:32px 32px 0!important;background:var(--iot-warm)!important
}
body.iot12-commerce.woocommerce-checkout #order_review{padding:18px 32px 32px!important;background:var(--iot-warm)!important}
body.iot12-commerce.woocommerce-checkout #payment{background:transparent!important}
body.iot12-commerce.woocommerce-checkout #place_order{width:100%!important;display:flex!important;justify-content:center!important;opacity:1!important;visibility:visible!important}
body.iot12-commerce.woocommerce-checkout .woocommerce-form-coupon-toggle{margin-bottom:30px!important}

/* Make classic and block commerce buttons impossible to disappear on paper/warm backgrounds. */
body.iot12-commerce button.button,
body.iot12-commerce a.button,
body.iot12-commerce input.button,
body.iot12-commerce .button.alt,
body.iot12-commerce .wc-block-components-button{
  background:#111!important;color:#fff!important;border:1px solid #111!important;opacity:1!important;visibility:visible!important;box-shadow:none!important
}
body.iot12-commerce button.button:disabled,
body.iot12-commerce button.button:disabled[disabled]{opacity:.42!important;color:#fff!important}

@media(max-width:1100px){
  .iot26-product-top{grid-template-columns:1fr;gap:48px;width:min(900px,90vw)}
  .iot26-product-summary{max-width:760px!important;padding-top:0!important}
  body.iot12-commerce.woocommerce-cart form.woocommerce-cart-form,
  body.iot12-commerce.woocommerce-cart .cart-collaterals{width:100%!important;max-width:none!important;float:none!important}
  body.iot12-commerce.woocommerce-cart .cart-collaterals{margin-top:36px!important}
  body.iot12-commerce.woocommerce-checkout #customer_details,
  body.iot12-commerce.woocommerce-checkout #order_review_heading,
  body.iot12-commerce.woocommerce-checkout #order_review{width:100%!important;float:none!important;clear:both!important}
  body.iot12-commerce.woocommerce-checkout #order_review_heading{margin-top:34px!important}
}
@media(max-width:760px){
  body.iot12-commerce ul.products,body.iot12-commerce .products{grid-template-columns:1fr!important;width:calc(100% - 40px)!important;gap:54px!important}
  .iot26-store-card-media{aspect-ratio:1/1!important}
  .iot26-product-top{width:100%;padding:34px 20px 72px;gap:34px}
  body.iot12-commerce.single-product .iot26-product-summary .product_title{font-size:58px!important}
  body.iot12-commerce.single-product .iot26-product-media .flex-control-thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}
  .iot26-product-details{padding-left:20px;padding-right:20px}
  .iot26-product-details>.iot12-micro,.iot26-product-details-copy{margin-left:0!important}
  .iot26-product-attributes{padding-left:20px;padding-right:20px}
  .iot26-product-attributes>h2,.iot26-product-attributes>.shop_attributes{margin-left:0!important}
  body.iot12-commerce.woocommerce-cart .woocommerce,
  body.iot12-commerce.woocommerce-checkout .woocommerce{width:calc(100% - 40px)!important}
  body.iot12-commerce.woocommerce-cart table.cart .product-thumbnail{display:none!important}
  body.iot12-commerce.woocommerce-cart table.cart td.actions .coupon{float:none!important;display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  body.iot12-commerce.woocommerce-cart #coupon_code{width:100%!important;min-width:0!important}
  body.iot12-commerce.woocommerce-cart button[name="update_cart"]{float:none!important;width:100%!important;margin-top:10px!important}
  body.iot12-commerce.woocommerce-checkout #customer_details .col-1,
  body.iot12-commerce.woocommerce-checkout #customer_details .col-2,
  body.iot12-commerce.woocommerce-checkout #order_review_heading,
  body.iot12-commerce.woocommerce-checkout #order_review{padding-left:20px!important;padding-right:20px!important}
}

/* ========================================================================
   V0.30 — archive alignment + WooCommerce cleanup after live-page review
   ======================================================================== */

/* Journal is the alignment reference: make Public History and Press use the
   same 5vw left edge and 1120px reading width instead of a centred 1360px list. */
.iot12-history-list>.iot12-events,
.iot12-press-list>.iot12-events{
  width:100%!important;
  max-width:1120px!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* One continuous commerce canvas: remove Shopkeeper's residual bottom spacer. */
body.iot12-commerce,
body.iot12-commerce #page_wrapper,
body.iot12-commerce .site-content,
body.iot12-commerce #primary,
body.iot12-commerce .content-area,
body.iot12-commerce .page-container,
body.iot12-commerce .page-content,
body.iot12-commerce .entry-content,
body.iot12-commerce main.site-main,
body.iot12-commerce .iot26-commerce-main,
body.iot12-commerce .iot26-commerce-content{
  background:var(--iot-paper)!important;
  margin-bottom:0!important;
  padding-bottom:0!important;
}
body.iot12-commerce .iot12-footer{margin-top:0!important}
body.iot12-commerce #page_wrapper::after,
body.iot12-commerce .site-content::after,
body.iot12-commerce .content-area::after{display:none!important;content:none!important}

/* All commerce intros align to the same working column as the content below. */
body.iot12-commerce .iot12-commerce-intro{
  padding-left:0!important;
  padding-right:0!important;
}
body.iot12-commerce .iot12-commerce-intro-inner,
body.iot12-commerce .iot12-commerce-intro> .iot12-micro,
body.iot12-commerce .iot12-commerce-intro> h1,
body.iot12-commerce .iot12-commerce-intro> p{
  width:min(1360px,90vw)!important;
  max-width:1360px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.iot12-commerce .iot12-commerce-intro> h1{max-width:1360px!important}
body.iot12-commerce .iot12-commerce-intro> p{max-width:860px!important;margin-top:0!important}

/* SHOP ------------------------------------------------------------------- */
/* The custom intro is the only shop title. Suppress any page/archive title
   Shopkeeper or WooCommerce still tries to emit. */
body.iot12-commerce.post-type-archive-product .woocommerce-products-header,
body.iot12-commerce.post-type-archive-product .woocommerce-products-header__title,
body.iot12-commerce.post-type-archive-product h1.page-title,
body.iot12-commerce.post-type-archive-product .page-title,
body.iot12-commerce.post-type-archive-product .woocommerce-page-title,
body.iot12-commerce.post-type-archive-product .shop-page-title,
body.iot12-commerce.post-type-archive-product .shop-page-title-wrapper,
body.iot12-commerce.post-type-archive-product .page-title-wrapper{
  display:none!important;
}

body.iot12-commerce.post-type-archive-product ul.products,
body.iot12-commerce.post-type-archive-product .products{
  width:min(1360px,90vw)!important;
  max-width:1360px!important;
  margin:0 auto!important;
  padding:0 0 clamp(90px,9vw,145px)!important;
  gap:clamp(34px,4vw,60px)!important;
  background:transparent!important;
}
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card{
  padding:0!important;
  background:transparent!important;
}
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card .iot27-store-card-media{
  width:100%!important;
  aspect-ratio:4/3!important;
  margin:0 0 26px!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  background:#0b0c0d!important;
}
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card .iot27-store-card-media img,
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card a img{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
  background:#0b0c0d!important;
}
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card a:hover img{transform:none!important}
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card .iot27-store-card-copy{
  width:100%!important;
  padding:0!important;
  margin:0!important;
  text-align:left!important;
}
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card .iot12-micro,
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card .woocommerce-loop-product__title,
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card .price,
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card .iot27-store-card-cta{
  padding-left:0!important;
  padding-right:0!important;
  margin-left:0!important;
  margin-right:0!important;
  text-align:left!important;
}
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card .woocommerce-loop-product__title{
  font:400 clamp(40px,4.4vw,66px)/.95 var(--iot-serif)!important;
  letter-spacing:-.045em!important;
  margin-bottom:12px!important;
}
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card .price{margin-bottom:22px!important}
body.iot12-commerce.post-type-archive-product .iot27-store-card-cta{
  display:inline-block!important;
  font:600 13px/1.2 var(--iot-sans)!important;
  color:var(--iot-ink)!important;
  border-bottom:1px solid currentColor!important;
  padding-bottom:3px!important;
}

/* SINGLE PRODUCT ---------------------------------------------------------- */
body.iot12-commerce.single-product .iot27-single-product{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
  background:var(--iot-paper)!important;
}
body.iot12-commerce.single-product .iot27-product-top{
  width:min(1460px,90vw)!important;
  max-width:1460px!important;
  margin:0 auto!important;
  padding:clamp(66px,7vw,105px) 0 clamp(80px,8vw,120px)!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(520px,.92fr)!important;
  gap:clamp(56px,6vw,105px)!important;
  align-items:start!important;
}
body.iot12-commerce.single-product .iot27-product-media{min-width:0!important}
body.iot12-commerce.single-product .iot27-product-main{
  width:100%!important;
  aspect-ratio:4/3!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  background:#0b0c0d!important;
}
body.iot12-commerce.single-product .iot27-product-main img,
body.iot12-commerce.single-product .iot27-product-main .woocommerce-placeholder{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#0b0c0d!important;
}
body.iot12-commerce.single-product .iot27-product-thumbs{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:10px!important;
  margin:12px 0 0!important;
}
body.iot12-commerce.single-product .iot27-product-thumb{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:100%!important;
  aspect-ratio:1/1!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:1px solid transparent!important;
  border-radius:0!important;
  display:block!important;
  overflow:hidden!important;
  cursor:pointer!important;
  background:#0b0c0d!important;
  box-shadow:none!important;
}
body.iot12-commerce.single-product .iot27-product-thumb.is-active{border-color:#111!important}
body.iot12-commerce.single-product .iot27-product-thumb img{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  object-fit:cover!important;
  display:block!important;
}
body.iot12-commerce.single-product .iot27-product-summary,
body.iot12-commerce.single-product .iot27-product-summary.summary{
  width:100%!important;
  max-width:700px!important;
  min-height:0!important;
  margin:0!important;
  padding:4px 0 0!important;
  display:block!important;
  float:none!important;
  text-align:left!important;
}
body.iot12-commerce.single-product .iot27-product-summary *{text-align:left!important}
body.iot12-commerce.single-product .iot27-product-summary .product_title{
  width:100%!important;
  max-width:700px!important;
  margin:0 0 22px!important;
  font:400 clamp(58px,6vw,96px)/.89 var(--iot-serif)!important;
  letter-spacing:-.055em!important;
  text-transform:none!important;
  color:var(--iot-ink)!important;
}
body.iot12-commerce.single-product .iot27-product-summary .woocommerce-product-details__short-description{
  width:100%!important;
  max-width:700px!important;
  margin:0 0 32px!important;
  font:18px/1.62 var(--iot-serif)!important;
  color:#262421!important;
}
body.iot12-commerce.single-product .iot27-purchase-panel{width:100%!important;max-width:700px!important}
body.iot12-commerce.single-product .iot27-product-summary .product_meta{width:100%!important;max-width:700px!important}

/* Long description begins on the same left edge as the product image. */
body.iot12-commerce.single-product .iot27-product-details,
body.iot12-commerce.single-product .iot27-product-attributes{
  width:min(1460px,90vw)!important;
  max-width:1460px!important;
  margin:0 auto!important;
  padding:clamp(78px,8vw,120px) 0 clamp(70px,7vw,105px)!important;
  border-top:1px solid rgba(0,0,0,.14)!important;
  background:var(--iot-paper)!important;
}
body.iot12-commerce.single-product .iot27-product-details>.iot12-micro,
body.iot12-commerce.single-product .iot27-product-details-copy,
body.iot12-commerce.single-product .iot27-product-attributes>h2,
body.iot12-commerce.single-product .iot27-product-attributes>.shop_attributes{
  width:min(960px,100%)!important;
  max-width:960px!important;
  margin-left:0!important;
  margin-right:0!important;
  text-align:left!important;
}
body.iot12-commerce.single-product .iot27-product-details-copy p,
body.iot12-commerce.single-product .iot27-product-details-copy ul,
body.iot12-commerce.single-product .iot27-product-details-copy ol,
body.iot12-commerce.single-product .iot27-product-details-copy h2,
body.iot12-commerce.single-product .iot27-product-details-copy h3,
body.iot12-commerce.single-product .iot27-product-details-copy h4{
  max-width:900px!important;
  text-align:left!important;
}

/* CART ------------------------------------------------------------------- */
body.iot12-commerce.woocommerce-cart .woocommerce{
  width:min(1360px,90vw)!important;
  max-width:1360px!important;
  margin:0 auto!important;
  padding:0 0 clamp(90px,8vw,125px)!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 390px!important;
  column-gap:clamp(36px,4vw,58px)!important;
  align-items:start!important;
  background:var(--iot-paper)!important;
}
body.iot12-commerce.woocommerce-cart .woocommerce>.iot12-commerce-intro,
body.iot12-commerce.woocommerce-cart .woocommerce>.woocommerce-notices-wrapper,
body.iot12-commerce.woocommerce-cart .woocommerce>.woocommerce-message,
body.iot12-commerce.woocommerce-cart .woocommerce>.woocommerce-error,
body.iot12-commerce.woocommerce-cart .woocommerce>.cart-empty,
body.iot12-commerce.woocommerce-cart .woocommerce>.return-to-shop{
  grid-column:1/-1!important;
  width:100%!important;
}
body.iot12-commerce.woocommerce-cart .woocommerce>.iot12-commerce-intro{
  width:100%!important;
  padding-top:clamp(70px,8vw,120px)!important;
}
body.iot12-commerce.woocommerce-cart .woocommerce>.iot12-commerce-intro>.iot12-micro,
body.iot12-commerce.woocommerce-cart .woocommerce>.iot12-commerce-intro>h1,
body.iot12-commerce.woocommerce-cart .woocommerce>.iot12-commerce-intro>p{
  width:100%!important;
  max-width:860px!important;
  margin-left:0!important;
  margin-right:0!important;
}
body.iot12-commerce.woocommerce-cart .woocommerce>.iot12-commerce-intro>h1{max-width:none!important}
body.iot12-commerce.woocommerce-cart form.woocommerce-cart-form{
  grid-column:1!important;
  width:100%!important;
  max-width:none!important;
  float:none!important;
  margin:0!important;
  min-width:0!important;
}
body.iot12-commerce.woocommerce-cart .cart-collaterals{
  grid-column:2!important;
  width:100%!important;
  max-width:none!important;
  float:none!important;
  margin:0!important;
  min-width:0!important;
}
body.iot12-commerce.woocommerce-cart table.cart td.actions{
  padding:26px 0 0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
}
body.iot12-commerce.woocommerce-cart table.cart td.actions .coupon{
  float:none!important;
  display:grid!important;
  grid-template-columns:minmax(170px,1fr) auto!important;
  gap:10px!important;
  align-items:center!important;
  width:min(470px,68%)!important;
}
body.iot12-commerce.woocommerce-cart #coupon_code{
  width:100%!important;
  min-width:0!important;
  height:48px!important;
  margin:0!important;
}
body.iot12-commerce.woocommerce-cart button[name="apply_coupon"],
body.iot12-commerce.woocommerce-cart button[name="update_cart"]{
  width:auto!important;
  min-width:130px!important;
  min-height:48px!important;
  height:48px!important;
  margin:0!important;
  padding:0 20px!important;
  border-radius:999px!important;
  white-space:nowrap!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#111!important;
  color:#fff!important;
  border:1px solid #111!important;
}
body.iot12-commerce.woocommerce-cart button[name="update_cart"]{float:none!important;margin-left:auto!important}
body.iot12-commerce.woocommerce-cart button[name="update_cart"]:disabled,
body.iot12-commerce.woocommerce-cart button[name="update_cart"]:disabled[disabled]{opacity:.5!important;color:#fff!important}
body.iot12-commerce.woocommerce-cart .return-to-shop .button,
body.iot12-commerce.woocommerce-cart .continue-shopping .button,
body.iot12-commerce.woocommerce-cart a.wc-backward{
  min-height:48px!important;
  padding:0 22px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:transparent!important;
  color:#111!important;
  border:1px solid #111!important;
  border-radius:999px!important;
  opacity:1!important;
}

/* CHECKOUT ---------------------------------------------------------------- */
body.iot12-commerce.woocommerce-checkout .woocommerce{
  width:min(1360px,90vw)!important;
  max-width:1360px!important;
  margin:0 auto!important;
  padding:0 0 clamp(90px,8vw,125px)!important;
  background:var(--iot-paper)!important;
}
body.iot12-commerce.woocommerce-checkout .woocommerce>.iot12-commerce-intro{
  width:100%!important;
  padding-top:clamp(70px,8vw,120px)!important;
}
body.iot12-commerce.woocommerce-checkout .woocommerce>.iot12-commerce-intro>.iot12-micro,
body.iot12-commerce.woocommerce-checkout .woocommerce>.iot12-commerce-intro>h1,
body.iot12-commerce.woocommerce-checkout .woocommerce>.iot12-commerce-intro>p{
  width:100%!important;
  max-width:860px!important;
  margin-left:0!important;
  margin-right:0!important;
}
body.iot12-commerce.woocommerce-checkout .woocommerce>.iot12-commerce-intro>h1{max-width:none!important}
body.iot12-commerce.woocommerce-checkout form.checkout{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.15fr) minmax(430px,.85fr)!important;
  grid-template-areas:
    "customer reviewHeading"
    "customer review"!important;
  gap:0 clamp(44px,5vw,72px)!important;
  align-items:start!important;
}
body.iot12-commerce.woocommerce-checkout #customer_details{
  grid-area:customer!important;
  width:100%!important;
  min-width:0!important;
  float:none!important;
  margin:0!important;
}
body.iot12-commerce.woocommerce-checkout #order_review_heading{
  grid-area:reviewHeading!important;
  width:100%!important;
  min-width:0!important;
  float:none!important;
  clear:none!important;
  margin:0!important;
  padding:32px 32px 0!important;
  background:var(--iot-warm)!important;
}
body.iot12-commerce.woocommerce-checkout #order_review{
  grid-area:review!important;
  width:100%!important;
  min-width:0!important;
  float:none!important;
  clear:none!important;
  margin:0!important;
  padding:18px 32px 32px!important;
  background:var(--iot-warm)!important;
}
body.iot12-commerce.woocommerce-checkout #customer_details .col-1,
body.iot12-commerce.woocommerce-checkout #customer_details .col-2{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  float:none!important;
  margin:0 0 28px!important;
  padding:32px!important;
  background:var(--iot-warm)!important;
}
body.iot12-commerce.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.iot12-commerce.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.iot12-commerce.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:16px 18px!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  float:none!important;
  margin:0!important;
  padding:0!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row.form-row-wide,
body.iot12-commerce.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row{
  grid-column:1/-1!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row input.input-text,
body.iot12-commerce.woocommerce-checkout form .form-row textarea,
body.iot12-commerce.woocommerce-checkout form .form-row .select2-container,
body.iot12-commerce.woocommerce-checkout form .form-row .select2-selection{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
body.iot12-commerce.woocommerce-checkout #order_review table.shop_table{
  width:100%!important;
  table-layout:auto!important;
  font-size:14px!important;
}
body.iot12-commerce.woocommerce-checkout #order_review table.shop_table th,
body.iot12-commerce.woocommerce-checkout #order_review table.shop_table td{
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  vertical-align:top!important;
}
body.iot12-commerce.woocommerce-checkout #payment,
body.iot12-commerce.woocommerce-checkout #payment ul.payment_methods,
body.iot12-commerce.woocommerce-checkout #payment .place-order{width:100%!important;min-width:0!important}
body.iot12-commerce.woocommerce-checkout #place_order{
  min-height:50px!important;
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}

@media(max-width:1100px){
  body.iot12-commerce.single-product .iot27-product-top{
    grid-template-columns:1fr!important;
    width:min(900px,90vw)!important;
    gap:46px!important;
  }
  body.iot12-commerce.single-product .iot27-product-summary,
  body.iot12-commerce.single-product .iot27-product-summary.summary{max-width:760px!important}
  body.iot12-commerce.single-product .iot27-product-details,
  body.iot12-commerce.single-product .iot27-product-attributes{width:min(900px,90vw)!important}

  body.iot12-commerce.woocommerce-cart .woocommerce{
    grid-template-columns:1fr!important;
    row-gap:34px!important;
  }
  body.iot12-commerce.woocommerce-cart form.woocommerce-cart-form,
  body.iot12-commerce.woocommerce-cart .cart-collaterals{grid-column:1!important;width:100%!important}

  body.iot12-commerce.woocommerce-checkout form.checkout{
    grid-template-columns:1fr!important;
    grid-template-areas:"customer" "reviewHeading" "review"!important;
    gap:0!important;
  }
  body.iot12-commerce.woocommerce-checkout #order_review_heading{margin-top:24px!important}
}

@media(max-width:760px){
  .iot12-history-list>.iot12-events,
  .iot12-press-list>.iot12-events{max-width:none!important}

  body.iot12-commerce.post-type-archive-product ul.products,
  body.iot12-commerce.post-type-archive-product .products{width:calc(100% - 40px)!important;grid-template-columns:1fr!important}
  body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card .iot27-store-card-media{aspect-ratio:1/1!important}

  body.iot12-commerce.single-product .iot27-product-top,
  body.iot12-commerce.single-product .iot27-product-details,
  body.iot12-commerce.single-product .iot27-product-attributes{width:calc(100% - 40px)!important}
  body.iot12-commerce.single-product .iot27-product-main{aspect-ratio:1/1!important}
  body.iot12-commerce.single-product .iot27-product-thumbs{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  body.iot12-commerce.single-product .iot27-product-summary .product_title{font-size:56px!important}

  body.iot12-commerce.woocommerce-cart .woocommerce,
  body.iot12-commerce.woocommerce-checkout .woocommerce{width:calc(100% - 40px)!important}
  body.iot12-commerce.woocommerce-cart table.cart td.actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  body.iot12-commerce.woocommerce-cart table.cart td.actions .coupon{
    width:100%!important;
    grid-template-columns:1fr!important;
  }
  body.iot12-commerce.woocommerce-cart button[name="apply_coupon"],
  body.iot12-commerce.woocommerce-cart button[name="update_cart"]{width:100%!important;margin:0!important}

  body.iot12-commerce.woocommerce-checkout #customer_details .col-1,
  body.iot12-commerce.woocommerce-checkout #customer_details .col-2,
  body.iot12-commerce.woocommerce-checkout #order_review_heading,
  body.iot12-commerce.woocommerce-checkout #order_review{padding-left:20px!important;padding-right:20px!important}
  body.iot12-commerce.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  body.iot12-commerce.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
  body.iot12-commerce.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{grid-template-columns:1fr!important}
  body.iot12-commerce.woocommerce-checkout form .form-row{grid-column:1!important}
}

/* ========================================================================
   V0.30 — project title rhythm + clean Cart/Checkout canvases
   ======================================================================== */

/* Deliberate two-line Project heading: "The stories within" / "our tears." */
.iot28-project-title{
  max-width:1000px!important;
  line-height:.86!important;
  letter-spacing:-.06em!important;
}
.iot28-project-title .iot28-project-title-line{display:inline-block}
#project .iot12-lead-strong{margin-top:48px!important;max-width:1080px}
#project .iot12-copy-columns{margin-top:48px!important}
@media(max-width:760px){
  .iot28-project-title{line-height:.9!important}
  #project .iot12-lead-strong{margin-top:34px!important}
  #project .iot12-copy-columns{margin-top:36px!important}
}

/* The Cart/Checkout shortcodes now live on a child-theme canvas instead of
   Shopkeeper's page.php. Keep paper continuous until the black footer. */
body.iot12-commerce .iot28-page-commerce-main{
  margin:0!important;
  padding:78px 0 0!important;
  min-height:0!important;
  background:var(--iot-paper)!important;
}
body.iot12-commerce .iot28-page-commerce-main>.woocommerce,
body.iot12-commerce .iot28-page-commerce-main>.wp-block-woocommerce-cart,
body.iot12-commerce .iot28-page-commerce-main>.wp-block-woocommerce-checkout{
  margin:0!important;
  background:var(--iot-paper)!important;
}
body.iot12-commerce .iot28-page-commerce-main + .iot12-footer{margin-top:0!important}

/* CART — preserve the V0.27 composition, make every control visibly intentional. */
body.iot12-commerce.woocommerce-cart button[name="apply_coupon"],
body.iot12-commerce.woocommerce-cart button[name="update_cart"],
body.iot12-commerce.woocommerce-cart .actions button,
body.iot12-commerce.woocommerce-cart .coupon button{
  text-indent:0!important;
  font-size:12px!important;
  font-family:var(--iot-sans)!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-transform:none!important;
  width:auto!important;
  min-width:132px!important;
  min-height:48px!important;
  height:48px!important;
  padding:0 20px!important;
  margin:0!important;
  border-radius:999px!important;
  background:#111!important;
  color:#fff!important;
  border:1px solid #111!important;
  opacity:1!important;
  visibility:visible!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-shadow:none!important;
}
body.iot12-commerce.woocommerce-cart button[name="apply_coupon"]::before,
body.iot12-commerce.woocommerce-cart button[name="apply_coupon"]::after,
body.iot12-commerce.woocommerce-cart button[name="update_cart"]::before,
body.iot12-commerce.woocommerce-cart button[name="update_cart"]::after{display:none!important;content:none!important}
body.iot12-commerce.woocommerce-cart button[name="update_cart"]:disabled,
body.iot12-commerce.woocommerce-cart button[name="update_cart"]:disabled[disabled]{opacity:.38!important}
body.iot12-commerce.woocommerce-cart .return-to-shop .button,
body.iot12-commerce.woocommerce-cart .continue-shopping .button,
body.iot12-commerce.woocommerce-cart a.wc-backward{
  text-indent:0!important;
  font:700 12px/1 var(--iot-sans)!important;
  min-width:170px!important;
  min-height:48px!important;
  padding:0 22px!important;
  color:#111!important;
  background:transparent!important;
  border:1px solid #111!important;
  border-radius:999px!important;
  opacity:1!important;
  visibility:visible!important;
}

/* CHECKOUT — explicit child Woo template. These elements are no longer inside
   Shopkeeper's checkout columns, so their widths are deterministic. */
body.iot12-commerce.woocommerce-checkout .iot28-page-commerce-main>.woocommerce{
  width:min(1360px,90vw)!important;
  max-width:1360px!important;
  margin:0 auto!important;
  padding:0 0 clamp(90px,8vw,125px)!important;
}
body.iot12-commerce.woocommerce-checkout .iot12-commerce-intro{
  width:100%!important;
  max-width:none!important;
  padding:clamp(68px,7vw,105px) 0 clamp(44px,5vw,70px)!important;
  margin:0!important;
}
body.iot12-commerce.woocommerce-checkout .iot12-commerce-intro>.iot12-micro,
body.iot12-commerce.woocommerce-checkout .iot12-commerce-intro>h1,
body.iot12-commerce.woocommerce-checkout .iot12-commerce-intro>p{
  margin-left:0!important;
  margin-right:0!important;
  max-width:850px!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-form{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  display:block!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1.45fr) minmax(440px,.85fr)!important;
  gap:clamp(42px,5vw,76px)!important;
  width:100%!important;
  max-width:none!important;
  align-items:start!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-customer,
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  float:none!important;
  clear:none!important;
  margin:0!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-customer #customer_details{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  float:none!important;
  display:block!important;
  margin:0!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-customer #customer_details .col-1,
body.iot12-commerce.woocommerce-checkout .iot28-checkout-customer #customer_details .col-2{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  float:none!important;
  clear:none!important;
  margin:0 0 30px!important;
  padding:clamp(26px,3vw,40px)!important;
  background:var(--iot-warm)!important;
  box-sizing:border-box!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-customer h3,
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel>h2{
  margin:0 0 28px!important;
  padding:0!important;
  font:400 clamp(38px,4vw,60px)/.95 var(--iot-serif)!important;
  letter-spacing:-.045em!important;
  color:var(--iot-ink)!important;
  text-transform:none!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel{
  padding:clamp(28px,3vw,42px)!important;
  background:var(--iot-warm)!important;
  box-sizing:border-box!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel #order_review_heading{
  width:100%!important;
  background:transparent!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel #order_review{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  float:none!important;
  clear:none!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  box-sizing:border-box!important;
}
body.iot12-commerce.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.iot12-commerce.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.iot12-commerce.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px 20px!important;
  width:100%!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  float:none!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row.form-row-wide,
body.iot12-commerce.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row{grid-column:1/-1!important}
body.iot12-commerce.woocommerce-checkout form .form-row label{
  display:block!important;
  margin:0 0 7px!important;
  font:700 10px/1.25 var(--iot-sans)!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
  color:#333!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row input.input-text,
body.iot12-commerce.woocommerce-checkout form .form-row textarea,
body.iot12-commerce.woocommerce-checkout form .form-row select,
body.iot12-commerce.woocommerce-checkout form .form-row .select2-container,
body.iot12-commerce.woocommerce-checkout form .form-row .select2-selection{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel table.shop_table{
  width:100%!important;
  max-width:none!important;
  table-layout:auto!important;
  border-collapse:collapse!important;
  font-size:14px!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel table.shop_table th,
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel table.shop_table td{
  word-break:normal!important;
  overflow-wrap:break-word!important;
  white-space:normal!important;
  vertical-align:top!important;
  padding:14px 6px!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel table.shop_table .product-name{width:68%!important;padding-left:0!important}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel table.shop_table .product-total{width:32%!important;text-align:right!important;padding-right:0!important}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel #payment,
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel #payment ul.payment_methods,
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel #payment .place-order{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
}
body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel #place_order{
  width:100%!important;
  min-height:50px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-indent:0!important;
}

@media(max-width:1050px){
  body.iot12-commerce.woocommerce-checkout .iot28-checkout-grid{grid-template-columns:1fr!important;gap:32px!important}
  body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel{max-width:none!important}
}
@media(max-width:760px){
  body.iot12-commerce .iot28-page-commerce-main{padding-top:70px!important}
  body.iot12-commerce.woocommerce-checkout .iot28-page-commerce-main>.woocommerce{width:calc(100% - 40px)!important}
  body.iot12-commerce.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  body.iot12-commerce.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
  body.iot12-commerce.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{grid-template-columns:1fr!important}
  body.iot12-commerce.woocommerce-checkout form .form-row{grid-column:1!important}
  body.iot12-commerce.woocommerce-checkout .iot28-checkout-customer #customer_details .col-1,
  body.iot12-commerce.woocommerce-checkout .iot28-checkout-customer #customer_details .col-2,
  body.iot12-commerce.woocommerce-checkout .iot28-checkout-review-panel{padding:22px!important}
  body.iot12-commerce.woocommerce-cart button[name="apply_coupon"],
  body.iot12-commerce.woocommerce-cart button[name="update_cart"]{width:100%!important;min-width:0!important}
}

/* ========================================================================
   V0.30 — regression repair: one header, intentional Project title,
   full-width Cart/Checkout canvases without Shopkeeper column constraints.
   ======================================================================== */

/* Our custom templates render the Imaginarium header themselves. Suppress any
   parent Shopkeeper header that is injected from wp_body_open so the logo/menu
   can never appear twice. */
.top-headers-wrapper,
body .site-header:not(.iot12-header),
body #masthead.site-header{
  display:none!important;
}
.iot12-header{
  display:grid!important;
}

/* 01 · The project — deliberate two-line lockup. */
#project .iot29-project-title{
  max-width:1100px!important;
  margin-bottom:0!important;
  line-height:.88!important;
  letter-spacing:-.055em!important;
}
#project .iot29-project-title .iot29-project-line{
  display:inline-block!important;
  white-space:nowrap!important;
}
#project .iot29-project-title + .iot12-lead-strong{
  margin-top:clamp(44px,5vw,70px)!important;
}
@media(max-width:760px){
  #project .iot29-project-title{line-height:.94!important;letter-spacing:-.04em!important}
  #project .iot29-project-title .iot29-project-line{white-space:normal!important}
  #project .iot29-project-title + .iot12-lead-strong{margin-top:34px!important}
}

/* A real full-width commerce canvas. Parent theme page/checkout widths must not
   be allowed to constrain our direct body children. */
body.iot12-commerce .iot29-page-commerce-main,
body.iot12-commerce .iot29-commerce-page-content{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  float:none!important;
  clear:both!important;
  display:block!important;
  box-sizing:border-box!important;
  background:var(--iot-paper)!important;
}
body.iot12-commerce .iot29-page-commerce-main{
  padding:72px 0 0!important;
  overflow:visible!important;
}
body.iot12-commerce .iot29-commerce-page-content>.woocommerce{
  width:min(1360px,90vw)!important;
  max-width:1360px!important;
  min-width:0!important;
  margin:0 auto!important;
  padding:0 0 clamp(90px,8vw,130px)!important;
  float:none!important;
  clear:both!important;
  box-sizing:border-box!important;
  background:var(--iot-paper)!important;
  overflow:visible!important;
}
body.iot12-commerce .iot12-footer{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  float:none!important;
  clear:both!important;
  box-sizing:border-box!important;
}

/* CART — same left edge for intro and product table, totals at the right. */
body.iot12-commerce.woocommerce-cart .iot29-commerce-page-content>.woocommerce{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 390px!important;
  column-gap:clamp(38px,4vw,64px)!important;
  align-items:start!important;
}
body.iot12-commerce.woocommerce-cart .iot29-commerce-page-content>.woocommerce>.iot12-commerce-intro,
body.iot12-commerce.woocommerce-cart .iot29-commerce-page-content>.woocommerce>.woocommerce-notices-wrapper,
body.iot12-commerce.woocommerce-cart .iot29-commerce-page-content>.woocommerce>.woocommerce-message,
body.iot12-commerce.woocommerce-cart .iot29-commerce-page-content>.woocommerce>.woocommerce-error,
body.iot12-commerce.woocommerce-cart .iot29-commerce-page-content>.woocommerce>.cart-empty,
body.iot12-commerce.woocommerce-cart .iot29-commerce-page-content>.woocommerce>.return-to-shop{
  grid-column:1/-1!important;
  width:100%!important;
  max-width:none!important;
}
body.iot12-commerce.woocommerce-cart .iot12-commerce-intro{
  padding:clamp(56px,6vw,86px) 0 clamp(44px,5vw,68px)!important;
  margin:0!important;
}
body.iot12-commerce.woocommerce-cart .iot12-commerce-intro>*{
  margin-left:0!important;
  margin-right:0!important;
}
body.iot12-commerce.woocommerce-cart form.woocommerce-cart-form{
  grid-column:1!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  float:none!important;
}
body.iot12-commerce.woocommerce-cart .cart-collaterals{
  grid-column:2!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  float:none!important;
}
body.iot12-commerce.woocommerce-cart table.shop_table{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
body.iot12-commerce.woocommerce-cart table.cart td.actions{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:14px!important;
  align-items:center!important;
  padding:26px 0 0!important;
}
body.iot12-commerce.woocommerce-cart table.cart td.actions .coupon{
  display:grid!important;
  grid-template-columns:minmax(180px,280px) auto!important;
  gap:10px!important;
  width:auto!important;
  max-width:480px!important;
  margin:0!important;
  float:none!important;
}
body.iot12-commerce.woocommerce-cart #coupon_code{
  width:100%!important;
  min-width:0!important;
  height:48px!important;
  margin:0!important;
  box-sizing:border-box!important;
}
body.iot12-commerce.woocommerce-cart button[name="apply_coupon"],
body.iot12-commerce.woocommerce-cart button[name="update_cart"]{
  width:auto!important;
  min-width:132px!important;
  height:48px!important;
  min-height:48px!important;
  padding:0 20px!important;
  margin:0!important;
  border-radius:999px!important;
  text-indent:0!important;
  font:700 12px/1 var(--iot-sans)!important;
  background:#111!important;
  color:#fff!important;
  border:1px solid #111!important;
}
body.iot12-commerce.woocommerce-cart button[name="update_cart"]{
  justify-self:end!important;
}
body.iot12-commerce.woocommerce-cart .return-to-shop,
body.iot12-commerce.woocommerce-cart .continue-shopping{
  grid-column:1!important;
  margin:28px 0 0!important;
  text-align:left!important;
}
body.iot12-commerce.woocommerce-cart .return-to-shop .button,
body.iot12-commerce.woocommerce-cart .continue-shopping .button,
body.iot12-commerce.woocommerce-cart a.wc-backward{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:180px!important;
  min-height:48px!important;
  padding:0 24px!important;
  border:1px solid #111!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#111!important;
  opacity:1!important;
  text-indent:0!important;
  font:700 12px/1 var(--iot-sans)!important;
}

/* CHECKOUT — custom wrapper deliberately avoids Shopkeeper's col2-set classes. */
body.iot12-commerce.woocommerce-checkout .iot29-commerce-page-content>.woocommerce{
  width:min(1360px,90vw)!important;
  max-width:1360px!important;
  margin:0 auto!important;
  display:block!important;
}
body.iot12-commerce.woocommerce-checkout .iot12-commerce-intro{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:clamp(56px,6vw,86px) 0 clamp(44px,5vw,68px)!important;
}
body.iot12-commerce.woocommerce-checkout .iot12-commerce-intro>.iot12-micro,
body.iot12-commerce.woocommerce-checkout .iot12-commerce-intro>h1,
body.iot12-commerce.woocommerce-checkout .iot12-commerce-intro>p{
  max-width:860px!important;
  margin-left:0!important;
  margin-right:0!important;
}
body.iot12-commerce.woocommerce-checkout form.iot29-checkout-form{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  float:none!important;
  display:block!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-layout{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.35fr) minmax(460px,.85fr)!important;
  gap:clamp(42px,5vw,76px)!important;
  align-items:start!important;
  box-sizing:border-box!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-customer,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  float:none!important;
  clear:none!important;
  box-sizing:border-box!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-card,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review{
  padding:clamp(28px,3vw,42px)!important;
  background:var(--iot-warm)!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-card + .iot29-checkout-card{
  margin-top:28px!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-card h3,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review>h2{
  margin:0 0 28px!important;
  padding:0!important;
  width:auto!important;
  max-width:none!important;
  float:none!important;
  clear:none!important;
  font:400 clamp(38px,4vw,58px)/.95 var(--iot-serif)!important;
  letter-spacing:-.045em!important;
  text-transform:none!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  white-space:normal!important;
  color:var(--iot-ink)!important;
}
body.iot12-commerce.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.iot12-commerce.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.iot12-commerce.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{
  width:100%!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px 20px!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  float:none!important;
  box-sizing:border-box!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row.form-row-wide,
body.iot12-commerce.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row{
  grid-column:1/-1!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row input.input-text,
body.iot12-commerce.woocommerce-checkout form .form-row textarea,
body.iot12-commerce.woocommerce-checkout form .form-row select,
body.iot12-commerce.woocommerce-checkout form .form-row .select2-container,
body.iot12-commerce.woocommerce-checkout form .form-row .select2-selection{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #order_review{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  float:none!important;
  clear:none!important;
  background:transparent!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table{
  width:100%!important;
  max-width:none!important;
  table-layout:auto!important;
  border-collapse:collapse!important;
  margin:0 0 22px!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table th,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table td{
  padding:14px 6px!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:break-word!important;
  vertical-align:top!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table .product-name{
  width:68%!important;
  padding-left:0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table .product-total{
  width:32%!important;
  text-align:right!important;
  padding-right:0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #payment,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #payment ul.payment_methods,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #payment .place-order{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #place_order{
  width:100%!important;
  min-height:50px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-indent:0!important;
}

@media(max-width:1100px){
  body.iot12-commerce.woocommerce-cart .iot29-commerce-page-content>.woocommerce{
    grid-template-columns:1fr!important;
    row-gap:34px!important;
  }
  body.iot12-commerce.woocommerce-cart form.woocommerce-cart-form,
  body.iot12-commerce.woocommerce-cart .cart-collaterals,
  body.iot12-commerce.woocommerce-cart .return-to-shop,
  body.iot12-commerce.woocommerce-cart .continue-shopping{
    grid-column:1!important;
  }
  body.iot12-commerce.woocommerce-checkout .iot29-checkout-layout{
    grid-template-columns:1fr!important;
    gap:32px!important;
  }
}
@media(max-width:760px){
  body.iot12-commerce .iot29-page-commerce-main{padding-top:64px!important}
  body.iot12-commerce .iot29-commerce-page-content>.woocommerce{
    width:calc(100% - 40px)!important;
  }
  body.iot12-commerce.woocommerce-cart table.cart td.actions{
    grid-template-columns:1fr!important;
  }
  body.iot12-commerce.woocommerce-cart table.cart td.actions .coupon{
    grid-template-columns:1fr!important;
    width:100%!important;
    max-width:none!important;
  }
  body.iot12-commerce.woocommerce-cart button[name="apply_coupon"],
  body.iot12-commerce.woocommerce-cart button[name="update_cart"]{
    width:100%!important;
    justify-self:stretch!important;
  }
  body.iot12-commerce.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  body.iot12-commerce.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
  body.iot12-commerce.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{
    grid-template-columns:1fr!important;
  }
  body.iot12-commerce.woocommerce-checkout form .form-row{grid-column:1!important}
  body.iot12-commerce.woocommerce-checkout .iot29-checkout-card,
  body.iot12-commerce.woocommerce-checkout .iot29-checkout-review{padding:22px!important}
}


/* ==========================================================================
   V0.30 — final Project lockup + store image framing + simplified cart /
   checkout polish. This layer intentionally overrides the earlier V0.29
   commerce rules without changing WooCommerce processing.
   ========================================================================== */

/* 01 · The project: exact editorial lockup requested.
   Line 1: The stories
   Line 2: within our tears. */
#project .iot29-project-title{
  max-width:1040px!important;
  line-height:.9!important;
}
#project .iot29-project-title .iot29-project-line{
  display:inline-block!important;
  white-space:nowrap!important;
}
#project .iot29-project-title + .iot12-lead-strong{
  margin-top:clamp(46px,5vw,72px)!important;
}

/* STORE + PRODUCT: source product photography is landscape. A 3:2 frame
   removes the artificial letterboxing while only allowing a very small crop. */
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card .iot27-store-card-media{
  aspect-ratio:3/2!important;
}
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card .iot27-store-card-media img,
body.iot12-commerce.post-type-archive-product ul.products li.product.iot27-store-card a img{
  object-fit:cover!important;
  object-position:center!important;
}
body.iot12-commerce.single-product .iot27-product-main{
  aspect-ratio:3/2!important;
}
body.iot12-commerce.single-product .iot27-product-main img,
body.iot12-commerce.single-product .iot27-product-main .woocommerce-placeholder{
  object-fit:cover!important;
  object-position:center!important;
}

/* CART: quantity is the only editable cart control. Coupon/update/continue
   controls are intentionally hidden; JS auto-submits quantity changes. */
body.iot12-commerce.woocommerce-cart table.cart td.actions{
  display:none!important;
  height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
}
body.iot12-commerce.woocommerce-cart .continue-shopping{
  display:none!important;
}
body.iot12-commerce.woocommerce-cart form.woocommerce-cart-form{
  margin-bottom:0!important;
}
body.iot12-commerce.woocommerce-cart .cart-collaterals{
  margin-bottom:0!important;
}

/* CHECKOUT: remove coupon UI even if another WooCommerce extension injects it. */
body.iot12-commerce.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.iot12-commerce.woocommerce-checkout form.checkout_coupon{
  display:none!important;
}

/* Checkout field typography: native and Select2 dropdowns should read at the
   same size/weight as the text inputs. */
body.iot12-commerce.woocommerce-checkout form .form-row input.input-text,
body.iot12-commerce.woocommerce-checkout form .form-row textarea,
body.iot12-commerce.woocommerce-checkout form .form-row select,
body.iot12-commerce.woocommerce-checkout form .form-row .select2-selection{
  font:400 13px/1.35 var(--iot-sans)!important;
  color:#111!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row select{
  padding:0 14px!important;
}
body.iot12-commerce.woocommerce-checkout form .select2-container .select2-selection--single{
  height:50px!important;
  min-height:50px!important;
}
body.iot12-commerce.woocommerce-checkout form .select2-container .select2-selection--single .select2-selection__rendered{
  height:48px!important;
  line-height:48px!important;
  padding:0 38px 0 14px!important;
  font:400 13px/48px var(--iot-sans)!important;
  color:#111!important;
}
body.iot12-commerce.woocommerce-checkout form .select2-container .select2-selection--single .select2-selection__arrow{
  height:48px!important;
  top:0!important;
  right:8px!important;
}

/* Order totals: labels and values sit as a compact left-aligned pair instead
   of stretching to opposite edges of the order card. */
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot th{
  width:34%!important;
  text-align:left!important;
  padding-left:0!important;
  padding-right:10px!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot td{
  width:66%!important;
  text-align:left!important;
  padding-left:14px!important;
  padding-right:0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot td *,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot td .amount{
  text-align:left!important;
}

/* Terms confirmation: create a clean breathing space before Place order and
   align checkbox/text as one readable row. */
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review .woocommerce-terms-and-conditions-wrapper{
  margin:24px 0 20px!important;
  padding:0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review .woocommerce-privacy-policy-text{
  margin:0 0 14px!important;
  font:400 12px/1.5 var(--iot-sans)!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review .woocommerce-terms-and-conditions-wrapper .form-row.validate-required{
  margin:18px 0 22px!important;
  padding:0!important;
  display:block!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review .woocommerce-form__label-for-checkbox{
  display:flex!important;
  align-items:flex-start!important;
  gap:10px!important;
  margin:0!important;
  font:500 12px/1.45 var(--iot-sans)!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review .woocommerce-form__label-for-checkbox input[type="checkbox"]{
  flex:0 0 auto!important;
  margin:2px 0 0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #place_order{
  margin-top:4px!important;
}

/* Keep the requested two-line lockup readable on phones without forcing words
   outside the viewport. */
@media(max-width:760px){
  #project .iot29-project-title .iot29-project-line{
    white-space:normal!important;
  }
  body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot th{
    width:40%!important;
  }
  body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot td{
    width:60%!important;
    padding-left:8px!important;
  }
}

/* ========================================================================
   V0.53 — Cart totals canvas + Checkout rhythm/unified cards
   ======================================================================== */

/* CART: the decorative warm totals ribbon stays intact, while the rectangular
   parent behind it merges back into the paper page. */
body.iot12-commerce.woocommerce-cart .cart-collaterals,
body.iot12-commerce.woocommerce-cart .cart-collaterals .cross-sells{
  background:var(--iot-paper)!important;
  box-shadow:none!important;
  border:0!important;
  padding:0!important;
}
body.iot12-commerce.woocommerce-cart .cart-collaterals::before,
body.iot12-commerce.woocommerce-cart .cart-collaterals::after{
  background:var(--iot-paper)!important;
  box-shadow:none!important;
}
/* Keep only the actual Cart totals ribbon warm. */
body.iot12-commerce.woocommerce-cart .cart-collaterals .cart_totals{
  background:var(--iot-warm)!important;
}

/* No secondary shopping-navigation control below the cart. */
body.iot12-commerce.woocommerce-cart .return-to-shop,
body.iot12-commerce.woocommerce-cart .continue-shopping,
body.iot12-commerce.woocommerce-cart a.wc-backward{
  display:none!important;
}

/* CHECKOUT: one cream-grey surface language. The three major cards share the
   same colour; WooCommerce's inner wrappers are transparent instead of adding
   a second tint. */
body.iot12-commerce.woocommerce-checkout{
  --iot-checkout-card:var(--iot-warm);
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-card,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review{
  background:var(--iot-checkout-card)!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-card .woocommerce-billing-fields,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-card .woocommerce-shipping-fields,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-card .woocommerce-additional-fields,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #order_review,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #payment,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #payment ul.payment_methods,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #payment .place-order,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review .woocommerce-checkout-payment{
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
}

/* More vertical rhythm between each label and its field and between rows. */
body.iot12-commerce.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.iot12-commerce.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.iot12-commerce.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{
  row-gap:26px!important;
  column-gap:20px!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row label{
  margin:0 0 11px!important;
  line-height:1.25!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row input.input-text,
body.iot12-commerce.woocommerce-checkout form .form-row select,
body.iot12-commerce.woocommerce-checkout form .form-row .select2-selection--single{
  min-height:50px!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row textarea{
  min-height:126px!important;
  padding-top:14px!important;
}

/* ORDER SUMMARY: give subtotal/shipping/total a stable two-column rhythm.
   Shipping methods are allowed to use the value column rather than wrapping
   into a narrow fragment. */
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr{
  display:grid!important;
  grid-template-columns:minmax(92px,34%) minmax(0,66%)!important;
  align-items:start!important;
  width:100%!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr th,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr td{
  display:block!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  box-sizing:border-box!important;
  text-align:left!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr th{
  padding:15px 12px 15px 0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr td{
  padding:15px 0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #shipping_method{
  margin:0!important;
  padding:0!important;
  list-style:none!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #shipping_method li{
  display:flex!important;
  align-items:flex-start!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  margin:0!important;
  padding:0!important;
  line-height:1.4!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #shipping_method li input{
  flex:0 0 auto!important;
  margin:3px 0 0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #shipping_method li label{
  flex:1 1 130px!important;
  min-width:0!important;
  margin:0!important;
  font-size:12px!important;
  line-height:1.4!important;
  text-transform:none!important;
  letter-spacing:0!important;
}

/* Keep the final amount and included-VAT note together and at a scale that
   comfortably fits the review card. */
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td{
  display:flex!important;
  align-items:baseline!important;
  gap:7px!important;
  flex-wrap:nowrap!important;
  white-space:nowrap!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td .amount{
  font:600 clamp(24px,2.2vw,32px)/1 var(--iot-serif)!important;
  letter-spacing:-.025em!important;
  white-space:nowrap!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td small,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td .includes_tax{
  display:inline!important;
  margin:0!important;
  font:400 8px/1.25 var(--iot-sans)!important;
  white-space:nowrap!important;
  color:#66615c!important;
}

/* Terms row gets its own clear interval before the primary action. */
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review .woocommerce-terms-and-conditions-wrapper{
  margin-top:30px!important;
  margin-bottom:26px!important;
  padding-top:4px!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review .woocommerce-terms-and-conditions-wrapper .form-row.validate-required{
  margin:20px 0 0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #place_order{
  margin-top:8px!important;
}

@media(max-width:760px){
  body.iot12-commerce.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  body.iot12-commerce.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
  body.iot12-commerce.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{
    row-gap:22px!important;
  }
  body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr{
    grid-template-columns:minmax(84px,38%) minmax(0,62%)!important;
  }
  body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td{
    gap:5px!important;
  }
  body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td .amount{
    font-size:25px!important;
  }
}

/* ========================================================================
   V0.53 — Cart secondary-action removal + checkout field rhythm / totals fix
   ======================================================================== */

/* CART: merge the Cart Totals canvas into the paper page while preserving the
   warm totals card itself. Also suppress every known WooCommerce/Shopkeeper
   secondary "continue shopping" presentation. JS provides a text-based
   fallback for theme-specific markup that has no stable class. */
body.iot12-commerce.woocommerce-cart .cart-collaterals,
body.iot12-commerce.woocommerce-cart .cart-collaterals > div:not(.cart_totals),
body.iot12-commerce.woocommerce-cart .cart-collaterals .cross-sells{
  background:var(--iot-paper)!important;
  box-shadow:none!important;
  border:0!important;
}
body.iot12-commerce.woocommerce-cart .cart-collaterals .cart_totals{
  background:var(--iot-warm)!important;
}
body.iot12-commerce.woocommerce-cart .return-to-shop,
body.iot12-commerce.woocommerce-cart .continue-shopping,
body.iot12-commerce.woocommerce-cart .wc-proceed-to-checkout + a,
body.iot12-commerce.woocommerce-cart a.wc-backward,
body.iot12-commerce.woocommerce-cart a.button.wc-backward,
body.iot12-commerce.woocommerce-cart .woocommerce-cart-form ~ .button.wc-backward,
body.iot12-commerce.woocommerce-cart .woocommerce-cart-form ~ a[href*="/shop"]{
  display:none!important;
}

/* CHECKOUT: make both spaces explicit: label -> field and field -> next label.
   A margin on the row itself is more reliable than grid-gap alone across
   WooCommerce/Select2 versions. */
body.iot12-commerce.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.iot12-commerce.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.iot12-commerce.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{
  row-gap:8px!important;
  column-gap:20px!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row{
  margin:0 0 18px!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row label{
  display:block!important;
  margin:0 0 9px!important;
  padding:0!important;
  line-height:1.3!important;
}
body.iot12-commerce.woocommerce-checkout form .form-row input.input-text,
body.iot12-commerce.woocommerce-checkout form .form-row textarea,
body.iot12-commerce.woocommerce-checkout form .form-row select,
body.iot12-commerce.woocommerce-checkout form .form-row .select2-container{
  margin:0!important;
}

/* ORDER TOTALS: restore real table semantics. V0.31's display:grid on <tr>
   caused the horizontal rules to fragment. Keep one stable label/value column
   pair and let shipping methods live naturally inside the value cell. */
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr{
  display:table-row!important;
  width:auto!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr th,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr td{
  display:table-cell!important;
  box-sizing:border-box!important;
  vertical-align:top!important;
  border-left:0!important;
  border-right:0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr th{
  width:34%!important;
  padding:15px 12px 15px 0!important;
  text-align:left!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr td{
  width:66%!important;
  padding:15px 0 15px 12px!important;
  text-align:left!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr td *{
  text-align:left!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #shipping_method li{
  display:flex!important;
  align-items:flex-start!important;
  gap:8px!important;
  flex-wrap:nowrap!important;
  margin:0!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review #shipping_method li label{
  flex:1 1 auto!important;
  min-width:0!important;
  margin:0!important;
  font:500 11px/1.35 var(--iot-sans)!important;
  text-transform:none!important;
  letter-spacing:0!important;
}

/* TOTAL: only the primary total amount is large. The nested VAT amount must
   inherit the small "includes VAT" note instead of matching the grand total. */
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td{
  white-space:nowrap!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td > strong{
  display:inline-block!important;
  margin:0!important;
  vertical-align:baseline!important;
  font-weight:400!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td > strong > .amount{
  display:inline!important;
  font:600 clamp(22px,2vw,30px)/1 var(--iot-serif)!important;
  letter-spacing:-.025em!important;
  white-space:nowrap!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td > small.includes_tax,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td > small{
  display:inline!important;
  margin-left:6px!important;
  vertical-align:baseline!important;
  font:400 8px/1.2 var(--iot-sans)!important;
  color:#66615c!important;
  white-space:nowrap!important;
}
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td > small .amount,
body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td .includes_tax .amount{
  display:inline!important;
  font:inherit!important;
  letter-spacing:0!important;
  color:inherit!important;
  white-space:nowrap!important;
}

@media(max-width:760px){
  body.iot12-commerce.woocommerce-checkout form .form-row{
    margin-bottom:16px!important;
  }
  body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr th{
    width:38%!important;
  }
  body.iot12-commerce.woocommerce-checkout .iot29-checkout-review table.shop_table tfoot tr td{
    width:62%!important;
    padding-left:8px!important;
  }
  body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td > small.includes_tax,
  body.iot12-commerce.woocommerce-checkout .iot29-checkout-review tr.order-total td > small{
    display:block!important;
    margin:4px 0 0!important;
  }
}

/* ========================================================================
   V0.53 — Order-received / thank-you page
   ======================================================================== */
body.iot12-commerce.woocommerce-order-received{
  background:var(--iot-paper)!important;
}
body.iot12-commerce.woocommerce-order-received .iot29-page-commerce-main,
body.iot12-commerce.woocommerce-order-received .iot29-commerce-page-content,
body.iot12-commerce.woocommerce-order-received .woocommerce{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:var(--iot-paper)!important;
}
body.iot12-commerce.woocommerce-order-received .woocommerce-order{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
.iot33-thankyou{
  width:min(1180px,90vw);
  margin:0 auto;
  padding:clamp(74px,8vw,128px) 0 clamp(90px,10vw,150px);
  color:var(--iot-ink);
}
.iot33-thankyou-head{
  max-width:900px;
  margin:0 0 clamp(44px,5vw,72px);
}
.iot33-thankyou-head .iot12-micro{
  margin-bottom:16px;
}
.iot33-thankyou-head h1{
  margin:0;
  font:400 clamp(56px,7.2vw,104px)/.91 var(--iot-serif)!important;
  letter-spacing:-.055em!important;
  color:var(--iot-ink)!important;
  text-transform:none!important;
}
.iot33-thankyou-head p{
  max-width:760px;
  margin:28px 0 0;
  font:600 clamp(20px,2vw,28px)/1.38 var(--iot-serif);
}
.iot33-thankyou-head-failed{
  padding:clamp(34px,4vw,56px);
  background:var(--iot-warm);
}
.iot33-thankyou-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:28px;
}
.iot33-outline-dark{
  color:var(--iot-ink)!important;
  border-color:rgba(0,0,0,.35)!important;
  background:transparent!important;
}
.iot33-order-overview{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  margin:0 0 clamp(62px,7vw,96px);
  background:var(--iot-warm);
  border-top:1px solid rgba(0,0,0,.12);
  border-bottom:1px solid rgba(0,0,0,.12);
}
.iot33-order-overview-item{
  min-width:0;
  padding:26px 24px 28px;
  border-right:1px solid rgba(0,0,0,.11);
}
.iot33-order-overview-item:last-child{border-right:0}
.iot33-order-overview-item span{
  display:block;
  margin:0 0 10px;
  font:9px/1.3 var(--iot-mono);
  text-transform:uppercase;
  letter-spacing:.1em;
  color:#75716b;
}
.iot33-order-overview-item strong{
  display:block;
  overflow-wrap:anywhere;
  font:400 20px/1.25 var(--iot-serif);
  color:var(--iot-ink);
}
.iot33-order-overview-item strong .amount{
  font:inherit!important;
  color:inherit!important;
}

/* Gateway messages/instructions between overview and order details. */
.iot33-thankyou > .woocommerce-bacs-bank-details,
.iot33-thankyou > .woocommerce-order-overview + p,
.iot33-thankyou > .woocommerce-notice,
.iot33-thankyou > .woocommerce-message,
.iot33-thankyou > .woocommerce-info{
  max-width:900px;
  margin:0 0 42px!important;
  padding:24px 28px!important;
  background:var(--iot-warm)!important;
  border:0!important;
  color:var(--iot-ink)!important;
}

.iot33-order-details-wrap{
  display:block;
  width:100%;
}
.iot33-order-details-wrap .woocommerce-order-details,
.iot33-order-details-wrap .woocommerce-customer-details,
.iot33-order-details-wrap .wc-bacs-bank-details,
.iot33-order-details-wrap .woocommerce-order-downloads{
  width:100%!important;
  max-width:none!important;
  margin:0 0 clamp(54px,6vw,84px)!important;
  padding:0!important;
}
.iot33-order-details-wrap h2,
.iot33-order-details-wrap .woocommerce-order-details__title,
.iot33-order-details-wrap .woocommerce-column__title{
  margin:0 0 26px!important;
  font:400 clamp(38px,4.8vw,64px)/.98 var(--iot-serif)!important;
  letter-spacing:-.04em!important;
  text-transform:none!important;
  color:var(--iot-ink)!important;
}
.iot33-order-details-wrap table.shop_table,
.iot33-order-details-wrap .woocommerce-table--order-details{
  width:100%!important;
  margin:0!important;
  border:0!important;
  border-collapse:collapse!important;
  background:var(--iot-warm)!important;
}
.iot33-order-details-wrap table.shop_table th,
.iot33-order-details-wrap table.shop_table td{
  padding:20px 24px!important;
  border:0!important;
  border-bottom:1px solid rgba(0,0,0,.12)!important;
  vertical-align:top!important;
  text-align:left!important;
}
.iot33-order-details-wrap table.shop_table thead th,
.iot33-order-details-wrap table.shop_table tfoot th{
  font:700 9px/1.3 var(--iot-mono)!important;
  text-transform:uppercase!important;
  letter-spacing:.08em!important;
  color:#4f4c48!important;
}
.iot33-order-details-wrap table.shop_table td,
.iot33-order-details-wrap table.shop_table tbody th,
.iot33-order-details-wrap table.shop_table tfoot td{
  font:16px/1.5 var(--iot-serif)!important;
  color:var(--iot-ink)!important;
}
.iot33-order-details-wrap table.shop_table td:last-child,
.iot33-order-details-wrap table.shop_table th:last-child{
  width:30%;
  text-align:right!important;
}
.iot33-order-details-wrap table.shop_table a{
  color:var(--iot-ink)!important;
  text-decoration:underline;
  text-underline-offset:3px;
}
.iot33-order-details-wrap .woocommerce-customer-details .woocommerce-columns--addresses,
.iot33-order-details-wrap .woocommerce-columns--addresses{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:24px!important;
  width:100%!important;
  margin:0!important;
}
.iot33-order-details-wrap .woocommerce-column,
.iot33-order-details-wrap .woocommerce-column--billing-address,
.iot33-order-details-wrap .woocommerce-column--shipping-address{
  width:auto!important;
  max-width:none!important;
  float:none!important;
  margin:0!important;
  padding:0!important;
}
.iot33-order-details-wrap .woocommerce-customer-details address{
  min-height:100%;
  margin:0!important;
  padding:28px 30px!important;
  border:0!important;
  border-radius:0!important;
  background:var(--iot-warm)!important;
  font:16px/1.65 var(--iot-serif)!important;
  color:var(--iot-ink)!important;
}
.iot33-order-details-wrap .woocommerce-customer-details address p{
  margin:8px 0 0!important;
}
.iot33-order-details-wrap .woocommerce-customer-details--phone,
.iot33-order-details-wrap .woocommerce-customer-details--email{
  font:15px/1.5 var(--iot-serif)!important;
}

@media(max-width:980px){
  .iot33-order-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .iot33-order-overview-item:nth-child(2n){border-right:0}
  .iot33-order-overview-item{border-bottom:1px solid rgba(0,0,0,.11)}
  .iot33-order-details-wrap .woocommerce-customer-details .woocommerce-columns--addresses,
  .iot33-order-details-wrap .woocommerce-columns--addresses{
    grid-template-columns:1fr!important;
  }
}
@media(max-width:620px){
  .iot33-thankyou{
    width:calc(100% - 36px);
    padding:54px 0 78px;
  }
  .iot33-thankyou-head h1{font-size:50px!important}
  .iot33-order-overview{grid-template-columns:1fr}
  .iot33-order-overview-item,
  .iot33-order-overview-item:nth-child(2n){
    border-right:0;
    border-bottom:1px solid rgba(0,0,0,.11);
    padding:20px 18px;
  }
  .iot33-order-details-wrap table.shop_table th,
  .iot33-order-details-wrap table.shop_table td{
    padding:16px 14px!important;
  }
  .iot33-order-details-wrap table.shop_table td:last-child,
  .iot33-order-details-wrap table.shop_table th:last-child{
    width:36%;
  }
  .iot33-order-details-wrap .woocommerce-customer-details address{
    padding:22px 20px!important;
  }
}

/* ========================================================================== 
   V0.53 — Branded add-to-cart confirmation panel
   The parent Shopkeeper notification can inherit a paper background while
   keeping white text. Replace only the success presentation; WooCommerce's
   AJAX cart transaction and cart fragments remain untouched.
   ========================================================================== */
.iot34-legacy-cart-notice{display:none!important}

.iot34-cart-toast{
 position:fixed;
 z-index:1000005;
 top:94px;
 right:24px;
 width:min(430px,calc(100vw - 32px));
 box-sizing:border-box;
 padding:30px;
 background:#08090a;
 color:#f4efe6;
 border:1px solid rgba(255,255,255,.16);
 box-shadow:0 22px 70px rgba(0,0,0,.32);
 opacity:0;
 visibility:hidden;
 transform:translate3d(28px,0,0);
 transition:opacity .22s ease,transform .28s cubic-bezier(.2,.7,.2,1),visibility 0s linear .28s;
 font-family:var(--iot-serif);
}
.iot34-cart-toast.is-open{
 opacity:1;
 visibility:visible;
 transform:translate3d(0,0,0);
 transition-delay:0s;
}
.iot34-cart-toast-close{
 position:absolute!important;
 top:13px!important;
 right:14px!important;
 width:36px!important;
 height:36px!important;
 min-width:36px!important;
 min-height:36px!important;
 margin:0!important;
 padding:0!important;
 border:0!important;
 border-radius:50%!important;
 background:transparent!important;
 color:#f4efe6!important;
 box-shadow:none!important;
 font:300 27px/34px Arial,sans-serif!important;
 text-align:center!important;
 cursor:pointer;
 opacity:.75;
}
.iot34-cart-toast-close:hover{opacity:1;background:rgba(255,255,255,.08)!important}
.iot34-cart-toast-kicker{
 margin:0 44px 22px 0;
 color:#aaa99f;
 font:600 10px/1.2 var(--iot-mono);
 letter-spacing:.11em;
 text-transform:uppercase;
}
.iot34-cart-toast-product{
 display:grid;
 grid-template-columns:96px minmax(0,1fr);
 gap:20px;
 align-items:center;
}
.iot34-cart-toast-image-wrap{
 width:96px;
 height:96px;
 overflow:hidden;
 background:#eee8de;
}
.iot34-cart-toast-image{
 display:block;
 width:100%!important;
 height:100%!important;
 max-width:none!important;
 object-fit:contain!important;
 object-position:center!important;
 margin:0!important;
}
.iot34-cart-toast-copy{min-width:0}
.iot34-cart-toast-title{
 display:block;
 margin:0;
 color:#fff!important;
 font:400 29px/1.02 var(--iot-serif)!important;
 letter-spacing:-.035em;
 text-transform:none!important;
 overflow-wrap:anywhere;
}
.iot34-cart-toast-meta{
 display:block;
 margin-top:9px;
 color:#c9c6bf!important;
 font:14px/1.45 var(--iot-serif)!important;
}
.iot34-cart-toast-actions{
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:10px;
 margin-top:26px;
 padding-top:22px;
 border-top:1px solid rgba(255,255,255,.16);
}
.iot34-cart-toast-button{
 display:flex!important;
 min-height:46px!important;
 align-items:center!important;
 justify-content:center!important;
 box-sizing:border-box!important;
 margin:0!important;
 padding:12px 16px!important;
 border:1px solid rgba(255,255,255,.62)!important;
 border-radius:999px!important;
 background:transparent!important;
 color:#fff!important;
 font:600 12px/1 var(--iot-sans)!important;
 letter-spacing:.01em!important;
 text-decoration:none!important;
 text-transform:none!important;
 box-shadow:none!important;
}
.iot34-cart-toast-button:hover{background:#fff!important;color:#08090a!important;border-color:#fff!important}
.iot34-cart-toast-checkout{
 background:#f3eee5!important;
 border-color:#f3eee5!important;
 color:#08090a!important;
}
.iot34-cart-toast-checkout:hover{background:#fff!important;color:#08090a!important}

/* Also make any non-AJAX Woo success notice readable if WooCommerce falls back
   to a normal page notice on a browser/plugin combination. */
body.iot12-commerce .woocommerce-message{
 background:#08090a!important;
 color:#f4efe6!important;
 border:0!important;
 box-shadow:0 14px 42px rgba(0,0,0,.16)!important;
}
body.iot12-commerce .woocommerce-message::before,
body.iot12-commerce .woocommerce-message a:not(.button){color:#f4efe6!important}
body.iot12-commerce .woocommerce-message .button,
body.iot12-commerce .woocommerce-message a.button{
 background:#f3eee5!important;
 color:#08090a!important;
 border:1px solid #f3eee5!important;
 border-radius:999px!important;
}

@media(max-width:700px){
 .iot34-cart-toast{
   top:74px;
   right:10px;
   width:calc(100vw - 20px);
   padding:24px 20px 20px;
 }
 .iot34-cart-toast-product{grid-template-columns:78px minmax(0,1fr);gap:15px}
 .iot34-cart-toast-image-wrap{width:78px;height:78px}
 .iot34-cart-toast-title{font-size:25px!important}
 .iot34-cart-toast-actions{grid-template-columns:1fr}
}

/* ========================================================================
   V0.53 — Activation source-level reset
   ------------------------------------------------------------------------
   The legacy /activate/ WordPress page wraps Caldera in WPBakery rows with a
   full-height grey canvas, a white vc_col-lg-5 column and old raw CSS. The
   utility template now extracts only [caldera_form ...] from that stored page
   and renders it here. These rules intentionally stay minimal so this is a
   clean baseline before the final form design pass.
   ======================================================================== */
body.iot12-utility-activate,
body.iot12-utility-activate #page_wrapper,
body.iot12-utility-activate .site-content,
body.iot12-utility-activate .content-area,
body.iot12-utility-activate .iot12-utility-page,
body.iot12-utility-activate .iot12-utility-body{
  background:var(--iot-paper)!important;
}

.iot12-utility-activate .iot12-utility-body{
  padding-top:clamp(46px,5vw,78px);
  padding-bottom:clamp(78px,8vw,124px);
}

.iot12-utility-activate .iot12-utility-content{
  width:min(1120px,calc(100% - 40px))!important;
  max-width:1120px!important;
  margin:0 auto!important;
  padding:0!important;
  background:transparent!important;
}

.iot12-utility-activate .iot12-activation-clean{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  box-sizing:border-box!important;
}

/* Only protect the native Caldera root from inheriting an unrelated fixed
   content width. Do not rearrange its rows/columns in this diagnostic pass. */
.iot12-utility-activate .iot12-activation-clean .caldera-grid,
.iot12-utility-activate .iot12-activation-clean .caldera-grid form{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  background:transparent!important;
  box-sizing:border-box!important;
}

.iot12-utility-activate .iot12-activation-clean input,
.iot12-utility-activate .iot12-activation-clean select,
.iot12-utility-activate .iot12-activation-clean textarea{
  max-width:100%;
  box-sizing:border-box;
}

@media(max-width:760px){
  .iot12-utility-activate .iot12-utility-content{
    width:calc(100% - 28px)!important;
  }
  .iot12-utility-activate .iot12-utility-body{
    padding-top:34px;
    padding-bottom:70px;
  }
}


/* ========================================================================
   V0.53 — Activation editorial form styling
   ------------------------------------------------------------------------
   V0.38 proved that the form itself is healthy once the old WPBakery wrapper
   is bypassed. V0.53 now styles the native Caldera output without changing
   its field IDs, validation, conditional logic or submission behaviour.
   ======================================================================== */
.iot12-utility-activate .iot12-utility-content{
  width:min(1180px,calc(100% - 40px))!important;
  max-width:1180px!important;
  margin:0 auto!important;
}

/* Keep the form aligned to the hero's left edge, with a comfortable editorial
   line length rather than stretching every input across the full 1180px. */
.iot12-utility-activate .iot12-activation-clean .caldera-grid{
  width:min(980px,100%)!important;
  max-width:980px!important;
  margin:0!important;
  color:var(--iot-ink)!important;
  font:400 17px/1.62 var(--iot-serif)!important;
}
.iot12-utility-activate .iot12-activation-clean .caldera-grid form{
  width:100%!important;
  max-width:none!important;
}

/* Neutralise Bootstrap gutters from Caldera so all sections share one axis. */
.iot12-utility-activate .caldera-grid .row{
  margin-left:0!important;
  margin-right:0!important;
}
.iot12-utility-activate .caldera-grid [class*="col-"]{
  padding-left:0!important;
  padding-right:0!important;
}

/* Remove the old 2017 divider hack from the HTML content. */
.iot12-utility-activate .caldera-grid div[style*="background-color:#eaeaea"][style*="width:140%"],
.iot12-utility-activate .caldera-grid div[style*="background-color: #eaeaea"][style*="width:140%"],
.iot12-utility-activate .caldera-grid .iot39-legacy-divider,
.iot12-utility-activate .caldera-grid .iot39-spacer-only{
  display:none!important;
}

/* Narrative copy inside Caldera HTML fields. */
.iot12-utility-activate .caldera-grid font,
.iot12-utility-activate .caldera-grid .tekst2{
  font-family:var(--iot-serif)!important;
  font-size:17px!important;
  line-height:1.62!important;
  font-weight:400!important;
  color:#2b2824!important;
}

/* The duplicate internal form title becomes a small eyebrow rather than a
   second competing hero heading. */
.iot12-utility-activate .caldera-grid .iot39-form-intro{
  max-width:880px;
  margin:0 0 54px!important;
  padding:0!important;
}
.iot12-utility-activate .caldera-grid .iot39-form-intro .titel{
  display:block!important;
  margin:0 0 20px!important;
  font:600 11px/1.2 var(--iot-sans)!important;
  letter-spacing:.15em!important;
  text-transform:uppercase!important;
  color:#6d665d!important;
}
.iot12-utility-activate .caldera-grid .iot39-form-intro .tekst2{
  display:block!important;
  max-width:850px;
}

/* Section/step hierarchy replaces the grey bars with quiet editorial rules. */
.iot12-utility-activate .caldera-grid .iot39-step-head,
.iot12-utility-activate .caldera-grid .iot39-section-head{
  margin-top:58px!important;
  padding-top:40px!important;
  border-top:1px solid rgba(20,18,15,.18)!important;
}
.iot12-utility-activate .caldera-grid .iot39-step-head:first-of-type{
  margin-top:0!important;
}
.iot12-utility-activate .caldera-grid .subtitel4{
  display:block!important;
  margin:0 0 10px!important;
  font:600 11px/1.2 var(--iot-sans)!important;
  letter-spacing:.15em!important;
  text-transform:uppercase!important;
  color:#716a61!important;
}
.iot12-utility-activate .caldera-grid .titel{
  display:block!important;
  margin:0 0 15px!important;
  font:400 clamp(34px,3vw,46px)/1.02 var(--iot-serif)!important;
  letter-spacing:-.035em!important;
  color:var(--iot-ink)!important;
}
.iot12-utility-activate .caldera-grid .iot39-step-head .tekst2,
.iot12-utility-activate .caldera-grid .iot39-section-head .tekst2{
  display:block!important;
  max-width:820px;
  margin-bottom:6px!important;
}

/* Form field rhythm. Keep Caldera's structure; only make the visual system
   consistent with the redesigned cart/checkout pages. */
.iot12-utility-activate .caldera-grid .form-group{
  margin:0 0 27px!important;
}
.iot12-utility-activate .caldera-grid label,
.iot12-utility-activate .caldera-grid .control-label{
  display:block!important;
  margin:0 0 9px!important;
  font:600 11px/1.3 var(--iot-sans)!important;
  letter-spacing:.075em!important;
  text-transform:uppercase!important;
  color:#4b4640!important;
}
.iot12-utility-activate .caldera-grid input[type="text"],
.iot12-utility-activate .caldera-grid input[type="email"],
.iot12-utility-activate .caldera-grid input[type="tel"],
.iot12-utility-activate .caldera-grid input[type="number"],
.iot12-utility-activate .caldera-grid input[type="date"],
.iot12-utility-activate .caldera-grid input[type="url"],
.iot12-utility-activate .caldera-grid select,
.iot12-utility-activate .caldera-grid textarea,
.iot12-utility-activate .caldera-grid .form-control{
  width:100%!important;
  max-width:100%!important;
  min-height:50px!important;
  margin:0!important;
  padding:12px 14px!important;
  border:1px solid rgba(24,21,17,.18)!important;
  border-radius:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:#fff!important;
  color:#171512!important;
  font:400 15px/1.35 var(--iot-sans)!important;
  box-sizing:border-box!important;
}
.iot12-utility-activate .caldera-grid textarea,
.iot12-utility-activate .caldera-grid textarea.form-control{
  min-height:150px!important;
  resize:vertical!important;
  line-height:1.5!important;
}
.iot12-utility-activate .caldera-grid input:focus,
.iot12-utility-activate .caldera-grid select:focus,
.iot12-utility-activate .caldera-grid textarea:focus,
.iot12-utility-activate .caldera-grid .form-control:focus{
  border-color:#171512!important;
  box-shadow:0 0 0 1px #171512!important;
}
.iot12-utility-activate .caldera-grid .help-block,
.iot12-utility-activate .caldera-grid .field_description,
.iot12-utility-activate .caldera-grid small{
  display:block;
  margin-top:7px!important;
  color:#756e65!important;
  font:400 13px/1.45 var(--iot-sans)!important;
}

/* Checkboxes/radios should not inherit the full-width field rules. */
.iot12-utility-activate .caldera-grid input[type="checkbox"],
.iot12-utility-activate .caldera-grid input[type="radio"]{
  width:auto!important;
  min-height:0!important;
  margin:2px 9px 0 0!important;
  padding:0!important;
  accent-color:#111!important;
  vertical-align:top!important;
}
.iot12-utility-activate .caldera-grid .checkbox label,
.iot12-utility-activate .caldera-grid .radio label{
  display:flex!important;
  align-items:flex-start!important;
  gap:7px!important;
  margin-bottom:10px!important;
  text-transform:none!important;
  letter-spacing:0!important;
  font:400 14px/1.45 var(--iot-sans)!important;
}
.iot12-utility-activate .caldera-grid a{
  color:var(--iot-ink)!important;
  text-decoration:none!important;
  border-bottom:1px solid currentColor!important;
}

/* Lists in the intro/summary become readable editorial lists. */
.iot12-utility-activate .caldera-grid ul,
.iot12-utility-activate .caldera-grid ol{
  margin:16px 0 24px 1.2em!important;
  padding:0!important;
}
.iot12-utility-activate .caldera-grid li{
  margin:5px 0!important;
  line-height:1.5!important;
}

/* Submit follows the black pill-button language already used across commerce. */
.iot12-utility-activate .caldera-grid input[type="submit"],
.iot12-utility-activate .caldera-grid button[type="submit"],
.iot12-utility-activate .caldera-grid .btn-primary{
  width:auto!important;
  min-width:170px!important;
  min-height:48px!important;
  margin-top:12px!important;
  padding:13px 28px!important;
  border:1px solid #111!important;
  border-radius:999px!important;
  background:#111!important;
  color:#fff!important;
  box-shadow:none!important;
  text-shadow:none!important;
  font:600 12px/1.2 var(--iot-sans)!important;
  letter-spacing:.04em!important;
  text-transform:none!important;
}
.iot12-utility-activate .caldera-grid input[type="submit"]:hover,
.iot12-utility-activate .caldera-grid button[type="submit"]:hover,
.iot12-utility-activate .caldera-grid .btn-primary:hover{
  background:#2c2925!important;
  border-color:#2c2925!important;
}

@media(max-width:760px){
  .iot12-utility-activate .iot12-utility-content{
    width:calc(100% - 28px)!important;
  }
  .iot12-utility-activate .iot12-activation-clean .caldera-grid{
    width:100%!important;
    max-width:none!important;
  }
  .iot12-utility-activate .caldera-grid .iot39-form-intro{
    margin-bottom:40px!important;
  }
  .iot12-utility-activate .caldera-grid .iot39-step-head,
  .iot12-utility-activate .caldera-grid .iot39-section-head{
    margin-top:42px!important;
    padding-top:30px!important;
  }
  .iot12-utility-activate .caldera-grid .titel{
    font-size:34px!important;
  }
  .iot12-utility-activate .caldera-grid font,
  .iot12-utility-activate .caldera-grid .tekst2{
    font-size:16px!important;
  }
  .iot12-utility-activate .caldera-grid input[type="submit"],
  .iot12-utility-activate .caldera-grid button[type="submit"],
  .iot12-utility-activate .caldera-grid .btn-primary{
    width:100%!important;
  }
}

/* =========================================================
   V0.53 — Responsive video behaviour
   Hero = full-bleed cover; explanatory video = uncropped 16:9 on phones.
   ========================================================= */

/* Vimeo background hero: keep a real 16:9 player and scale it like
   object-fit: cover. The excess is cropped by the hero's overflow:hidden. */
.iot12-hero iframe{
  inset:auto!important;
  top:50%!important;
  left:50%!important;
  width:100vw!important;
  height:56.25vw!important;
  min-width:177.7778vh!important;
  min-height:100vh!important;
  transform:translate(-50%,-50%)!important;
}

@media(max-width:650px){
  /* Use the small viewport height on phones so browser chrome does not
     create a section taller than the actually visible screen. */
  .iot12-hero{
    height:100vh!important;
    min-height:0!important;
  }
  .iot12-hero iframe{
    width:100vw!important;
    height:56.25vw!important;
    min-width:177.7778vh!important;
    min-height:100vh!important;
  }
  @supports (height:100svh){
    .iot12-hero{height:100svh!important}
    .iot12-hero iframe{
      min-width:177.7778svh!important;
      min-height:100svh!important;
    }
  }

  .iot12-hero-copy{
    padding:0 24px max(34px,7vh)!important;
  }
  .iot12-hero h1{
    font-size:clamp(46px,14vw,62px)!important;
    line-height:.88!important;
    letter-spacing:-.055em!important;
    margin-bottom:22px!important;
  }
  .iot12-hero p{
    font-size:clamp(18px,5.4vw,22px)!important;
    line-height:1.34!important;
  }

  /* The process/technical film is information rather than background.
     On phones show the complete 16:9 frame instead of forcing it into 100vh. */
  .iot12-video{
    height:auto!important;
    min-height:0!important;
    aspect-ratio:16 / 9!important;
    overflow:hidden!important;
  }
  .iot12-video iframe{
    inset:0!important;
    top:0!important;
    left:0!important;
    width:100%!important;
    height:100%!important;
    min-width:0!important;
    min-height:0!important;
    transform:none!important;
  }
  .iot12-video-label{
    left:12px!important;
    right:auto!important;
    bottom:12px!important;
    max-width:calc(100% - 24px)!important;
    padding:7px 9px!important;
    font-size:8px!important;
    line-height:1.3!important;
  }
}

/* =========================================================
   V0.53 — Process film uses the same full-bleed cover model as the hero
   One landscape Vimeo source, autoplayed/muted/looped as a background.
   ========================================================= */
.iot12-video.iot12-process-video{
  height:100vh!important;
  min-height:720px!important;
  aspect-ratio:auto!important;
  position:relative!important;
  overflow:hidden!important;
  background:#000!important;
}
.iot12-video.iot12-process-video iframe{
  inset:auto!important;
  top:50%!important;
  left:50%!important;
  width:100vw!important;
  height:56.25vw!important;
  min-width:177.7778vh!important;
  min-height:100vh!important;
  transform:translate(-50%,-50%)!important;
  border:0!important;
  pointer-events:none!important;
}

@media(max-width:650px){
  .iot12-video.iot12-process-video{
    height:100vh!important;
    min-height:0!important;
    aspect-ratio:auto!important;
  }
  .iot12-video.iot12-process-video iframe{
    inset:auto!important;
    top:50%!important;
    left:50%!important;
    width:100vw!important;
    height:56.25vw!important;
    min-width:177.7778vh!important;
    min-height:100vh!important;
    transform:translate(-50%,-50%)!important;
  }
  @supports (height:100svh){
    .iot12-video.iot12-process-video{height:100svh!important}
    .iot12-video.iot12-process-video iframe{
      min-width:177.7778svh!important;
      min-height:100svh!important;
    }
  }
}

/* =========================================================
   V0.53 — Single tear image: true full-bleed photography
   ---------------------------------------------------------
   The microscopy image should read as the visual half of the page,
   not as an object contained inside a black frame. Keep the image
   panel flush with the viewport edge and let the photograph cover
   its panel, cropping only the excess image area as the viewport
   changes. On stacked/mobile layouts the same rule makes the image
   edge-to-edge across the screen.
   ========================================================= */
.iot12-single-tear{
  width:100%;
  max-width:none;
  margin:0;
  overflow:hidden;
}
.iot12-single-image{
  width:100%;
  max-width:none;
  margin:0;
  overflow:hidden;
  background:#020304;
}
.iot12-single-image img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center center!important;
  margin:0!important;
}

@media(max-width:1020px){
  .iot12-single-tear{grid-template-columns:1fr!important}
  .iot12-single-image{
    width:100vw;
    max-width:100vw;
    margin-left:calc(50% - 50vw);
  }
}

/* ========================================================================
   V0.53 — collaboration / licensing conversion architecture
   ======================================================================== */
#collaborate{scroll-margin-top:76px;position:relative}
.iot12-legacy-anchor{position:absolute;top:0;left:0;width:1px;height:1px;overflow:hidden}
.iot12-header .iot12-nav a[href*="#collaborate"]{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  padding:9px 14px!important;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
}
.iot12-header .iot12-nav a[href*="#collaborate"]:hover{
  background:#fff;
  color:#111!important;
  opacity:1;
}
.iot12-contact-block h3 a{
  color:#fff!important;
  border-bottom:0!important;
}
.iot12-contact-more{margin-top:11px!important;font-size:12px!important}
.iot12-contact-more a{display:inline-block;margin-right:7px}
.iot12-contact-more span{color:#6f706e;margin-right:7px}

.iot12-commercial-hero{padding-top:150px}
.iot12-commercial-hero .iot12-copy-columns{margin-top:54px}
.iot12-commercial-grid-wrap{background:var(--iot-paper);padding:0 5vw 9vw}
.iot12-commercial-grid{
  max-width:1120px;
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid rgba(0,0,0,.16);
  border-left:1px solid rgba(0,0,0,.16);
}
.iot12-commercial-card{
  min-height:300px;
  padding:clamp(30px,4vw,56px);
  border-right:1px solid rgba(0,0,0,.16);
  border-bottom:1px solid rgba(0,0,0,.16);
}
.iot12-commercial-card h2{
  font:400 clamp(32px,3.7vw,54px)/1 var(--iot-serif);
  letter-spacing:-.045em;
  margin:0 0 22px;
  color:var(--iot-ink)!important;
}
.iot12-commercial-card p{font:17px/1.68 var(--iot-serif);margin:0;max-width:520px}
.iot12-commercial-process{padding-top:9vw;padding-bottom:9vw}
.iot12-commercial-process .iot12-aligned-content>h2{
  color:#fff!important;
  max-width:1000px;
}
.iot12-commercial-steps{
  margin-top:62px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,.18);
  border-left:1px solid rgba(255,255,255,.18);
}
.iot12-commercial-steps>div{
  padding:34px 28px 38px;
  min-height:250px;
  border-right:1px solid rgba(255,255,255,.18);
  border-bottom:1px solid rgba(255,255,255,.18);
}
.iot12-commercial-steps b{
  display:block;
  font:10px var(--iot-mono);
  letter-spacing:.1em;
  color:#888;
  margin-bottom:44px;
}
.iot12-commercial-steps h3{
  font:400 29px/1.05 var(--iot-serif);
  color:#fff!important;
  margin:0 0 16px;
}
.iot12-commercial-steps p{font:15px/1.62 var(--iot-serif);color:#c2c1bd;margin:0}
.iot12-commercial-proof h2,.iot12-commercial-cta h2{
  max-width:1020px;
}
.iot12-commercial-links{
  margin-top:44px;
  display:flex;
  gap:28px;
  flex-wrap:wrap;
}
.iot12-commercial-links a,
.iot12-commercial-bridge a{
  color:var(--iot-ink)!important;
  font:600 13px var(--iot-sans);
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
}
.iot12-commercial-bridge{padding:52px 5vw 58px;color:var(--iot-ink)}
.iot12-commercial-bridge>.iot12-content{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:40px;
}
.iot12-commercial-bridge h2{
  font:400 clamp(34px,4.4vw,64px)/.98 var(--iot-serif);
  letter-spacing:-.045em;
  margin:12px 0 0;
  max-width:840px;
  color:var(--iot-ink)!important;
}
.iot12-commercial-bridge a{flex:none;margin-bottom:5px}

@media(max-width:1050px){
  .iot12-commercial-steps{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .iot12-header .iot12-nav a[href*="#collaborate"]{
    justify-content:flex-start;
    border-radius:0;
    border:0;
    border-top:1px solid rgba(255,255,255,.22);
    margin-top:5px;
    padding-top:16px!important;
  }
  .iot12-commercial-hero{padding-top:115px}
  .iot12-commercial-grid-wrap{padding:0 24px 70px}
  .iot12-commercial-grid{grid-template-columns:1fr}
  .iot12-commercial-card{min-height:0;padding:34px 28px}
  .iot12-commercial-steps{grid-template-columns:1fr}
  .iot12-commercial-steps>div{min-height:0}
  .iot12-commercial-bridge{padding:38px 24px 42px}
  .iot12-commercial-bridge>.iot12-content{display:block}
  .iot12-commercial-bridge a{display:inline-block;margin-top:24px}
}

/* ========================================================================
   V0.53 — normalised Collaborate navigation + Meaningful Moments funnel
   ======================================================================== */
/* Collaborate remains visible in the main sequence, but no longer behaves as
   a visually dominant pill CTA. The menu stays editorial and balanced. */
.iot12-header .iot12-nav a[href*="#collaborate"]{
  display:block!important;
  align-items:initial!important;
  justify-content:initial!important;
  padding:9px 0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--iot-white)!important;
}
.iot12-header .iot12-nav a[href*="#collaborate"]:hover{
  background:transparent!important;
  color:var(--iot-white)!important;
  opacity:.68!important;
}

/* Quiet homepage bridge beneath the two shop cards. */
.iot46-moments-teaser{
  background:var(--iot-paper);
  padding:0 5vw 8vw;
}
.iot46-moments-teaser-inner{
  max-width:1120px;
  padding-top:44px;
  border-top:1px solid rgba(0,0,0,.18);
}
.iot46-moments-teaser h3{
  max-width:820px;
  margin:14px 0 16px;
  font:400 clamp(30px,3.2vw,48px)/1.03 var(--iot-serif);
  letter-spacing:-.04em;
  color:var(--iot-ink)!important;
}
.iot46-moments-teaser p{
  max-width:820px;
  margin:0;
  font:17px/1.65 var(--iot-serif);
  color:var(--iot-ink);
}
.iot46-moment-links{
  margin-top:28px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:11px 24px;
}
.iot46-moment-links a{
  color:var(--iot-ink)!important;
  font:600 12px/1.3 var(--iot-sans);
  border-bottom:1px solid rgba(0,0,0,.42);
  padding-bottom:4px;
}
.iot46-moment-links .iot46-moment-all{margin-left:10px}

/* Meaningful Moments hub and individual discovery pages. */
.iot46-moments-hero{padding-top:150px}
.iot46-moments-hero h1{max-width:1080px}
.iot46-moments-hero .iot12-copy-columns{margin-top:54px}
.iot46-moment-grid-wrap{
  background:var(--iot-paper);
  padding:0 5vw 9vw;
}
.iot46-moment-grid{
  max-width:1120px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid rgba(0,0,0,.17);
  border-left:1px solid rgba(0,0,0,.17);
}
.iot46-moment-card{
  display:flex!important;
  flex-direction:column;
  min-height:390px;
  padding:clamp(30px,3.5vw,50px);
  border-right:1px solid rgba(0,0,0,.17);
  border-bottom:1px solid rgba(0,0,0,.17);
  color:var(--iot-ink)!important;
  transition:background .2s ease;
}
.iot46-moment-card:hover{background:#e8e3db}
.iot46-moment-card h2{
  margin:20px 0 20px;
  font:400 clamp(32px,3.2vw,48px)/1 var(--iot-serif);
  letter-spacing:-.04em;
  color:var(--iot-ink)!important;
}
.iot46-moment-card p{
  margin:0 0 32px;
  font:16px/1.65 var(--iot-serif);
  color:var(--iot-ink);
}
.iot46-moment-card>span{
  margin-top:auto;
  width:max-content;
  font:600 12px var(--iot-sans);
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
}
.iot46-moment-process{padding-top:9vw;padding-bottom:9vw}
.iot46-moment-process h2{
  max-width:1020px;
  color:#fff!important;
}
.iot46-moment-steps{
  margin-top:60px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid rgba(255,255,255,.18);
  border-left:1px solid rgba(255,255,255,.18);
}
.iot46-moment-steps>div{
  min-height:255px;
  padding:32px 26px 36px;
  border-right:1px solid rgba(255,255,255,.18);
  border-bottom:1px solid rgba(255,255,255,.18);
}
.iot46-moment-steps b{
  display:block;
  margin-bottom:42px;
  font:10px var(--iot-mono);
  letter-spacing:.1em;
  color:#878787;
}
.iot46-moment-steps h3{
  margin:0 0 15px;
  font:400 28px/1.05 var(--iot-serif);
  color:#fff!important;
}
.iot46-moment-steps p{
  margin:0;
  font:15px/1.62 var(--iot-serif);
  color:#c5c3bf;
}
.iot46-moment-truth h2,
.iot46-moment-cta h2,
.iot46-moment-ideas h2,
.iot46-moment-faq h2{max-width:1000px}
.iot46-moment-ideas{padding-top:8vw;padding-bottom:8vw}
.iot46-idea-grid,
.iot46-faq-grid{
  margin-top:54px;
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid rgba(0,0,0,.17);
  border-left:1px solid rgba(0,0,0,.17);
}
.iot46-idea-grid>div,
.iot46-faq-grid>div{
  padding:32px 32px 36px;
  min-height:210px;
  border-right:1px solid rgba(0,0,0,.17);
  border-bottom:1px solid rgba(0,0,0,.17);
}
.iot46-idea-grid h3,
.iot46-faq-grid h3{
  margin:0 0 14px;
  font:400 27px/1.08 var(--iot-serif);
  color:var(--iot-ink)!important;
}
.iot46-idea-grid p,
.iot46-faq-grid p{
  margin:0;
  max-width:530px;
  font:16px/1.65 var(--iot-serif);
  color:var(--iot-ink);
}
.iot46-moment-faq{padding-top:8vw;padding-bottom:8vw}
.iot46-moment-cta .iot12-actions{align-items:center}

/* Tear Collection Kit product: a stronger use-case bridge without changing
   the purchase controls or WooCommerce product schema. */
.iot46-product-moments{
  margin-top:clamp(50px,7vw,100px);
  padding:clamp(48px,6vw,84px) clamp(24px,5vw,72px);
  background:var(--iot-warm);
  color:var(--iot-ink);
}
.iot46-product-moments-intro{max-width:960px}
.iot46-product-moments-intro h2{
  margin:14px 0 20px;
  font:400 clamp(38px,4.6vw,66px)/.98 var(--iot-serif);
  letter-spacing:-.045em;
  color:var(--iot-ink)!important;
}
.iot46-product-moments-intro>p{
  max-width:860px;
  margin:0;
  font:18px/1.65 var(--iot-serif);
}
.iot46-product-moment-grid{
  margin-top:48px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid rgba(0,0,0,.18);
  border-left:1px solid rgba(0,0,0,.18);
}
.iot46-product-moment-grid>a{
  display:flex;
  flex-direction:column;
  min-height:300px;
  padding:30px;
  color:var(--iot-ink)!important;
  border-right:1px solid rgba(0,0,0,.18);
  border-bottom:1px solid rgba(0,0,0,.18);
}
.iot46-product-moment-grid h3{
  margin:16px 0 15px;
  font:400 31px/1.03 var(--iot-serif);
  letter-spacing:-.035em;
  color:var(--iot-ink)!important;
}
.iot46-product-moment-grid p{
  margin:0 0 24px;
  font:15px/1.62 var(--iot-serif);
}
.iot46-product-moment-grid span{
  margin-top:auto;
  font:600 12px/1.35 var(--iot-sans);
  text-decoration:underline;
  text-underline-offset:5px;
}
.iot46-product-moments-all{margin:28px 0 0!important}
.iot46-product-moments-all a{
  color:var(--iot-ink)!important;
  font:600 13px var(--iot-sans);
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
}

@media(max-width:1050px){
  .iot46-moment-grid{grid-template-columns:1fr}
  .iot46-moment-card{min-height:0}
  .iot46-moment-steps{grid-template-columns:1fr 1fr}
  .iot46-product-moment-grid{grid-template-columns:1fr}
  .iot46-product-moment-grid>a{min-height:0}
}
@media(max-width:760px){
  .iot12-header .iot12-nav a[href*="#collaborate"]{
    margin-top:0!important;
    padding:13px 0!important;
    border-top:0!important;
  }
  .iot46-moments-teaser{padding:0 24px 68px}
  .iot46-moments-teaser-inner{padding-top:34px}
  .iot46-moment-links{display:block}
  .iot46-moment-links a{display:table;margin:0 0 14px}
  .iot46-moment-links .iot46-moment-all{margin-left:0;margin-top:22px}
  .iot46-moments-hero{padding-top:115px}
  .iot46-moment-grid-wrap{padding:0 24px 70px}
  .iot46-moment-card{padding:32px 27px}
  .iot46-moment-steps{grid-template-columns:1fr}
  .iot46-moment-steps>div{min-height:0}
  .iot46-idea-grid,.iot46-faq-grid{grid-template-columns:1fr}
  .iot46-idea-grid>div,.iot46-faq-grid>div{min-height:0;padding:28px 25px 31px}
  .iot46-product-moments{margin-top:45px;padding:42px 24px}
  .iot46-product-moment-grid{margin-top:36px}
  .iot46-product-moment-grid>a{padding:26px 23px}
}

/* =========================================================
   V0.53 — Meaningful Moments editorial + visual refinement
   ========================================================= */

/* Homepage: make the Meaningful Moments bridge read as a true editorial
   continuation of Participate / collect instead of a small promo module. */
.iot47-home-moments{
  background:var(--iot-warm)!important;
  color:var(--iot-ink);
  border-top:1px solid rgba(0,0,0,.16);
}
.iot47-home-moments .iot12-participate-copy{
  padding-top:8.5vw!important;
  padding-bottom:8.5vw!important;
}
.iot47-home-moment-links{
  max-width:1120px;
  margin-top:46px;
  padding-top:28px;
  border-top:1px solid rgba(0,0,0,.18);
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:16px clamp(22px,3vw,48px);
}
.iot47-home-moment-links a{
  color:var(--iot-ink)!important;
  font:600 13px/1.4 var(--iot-sans);
  border-bottom:1px solid rgba(0,0,0,.48);
  padding-bottom:5px;
}
.iot47-home-moment-links .iot47-home-moment-all{
  margin-left:auto;
  font-family:var(--iot-serif);
  font-size:15px;
  font-weight:400;
}

/* Hub cards: image first, then editorial copy. */
.iot47-moment-grid-wrap{padding-top:0!important}
.iot47-moment-grid{max-width:none!important}
.iot46-moment-card.iot47-moment-card{
  min-height:0;
  padding:0!important;
  overflow:hidden;
  background:var(--iot-paper);
}
.iot47-moment-card-image{
  position:relative;
  width:100%;
  aspect-ratio:1.08/1;
  margin:0;
  overflow:hidden;
  background:#050607;
}
.iot47-moment-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .65s ease;
}
.iot47-moment-card:hover .iot47-moment-card-image img{transform:scale(1.025)}
.iot47-moment-card-image figcaption,
.iot47-moment-hero-media figcaption,
.iot47-product-moment-image figcaption{
  position:absolute;
  left:18px;
  right:18px;
  bottom:16px;
  z-index:2;
  margin:0;
  color:#fff;
  font:9px/1.35 var(--iot-mono);
  letter-spacing:.09em;
  text-transform:uppercase;
  text-shadow:0 1px 12px rgba(0,0,0,.75);
}
.iot47-moment-card-copy{
  flex:1;
  min-height:330px;
  padding:clamp(28px,3.1vw,44px);
  display:flex;
  flex-direction:column;
}
.iot47-moment-card-copy>span{
  margin-top:auto;
  width:max-content;
  color:var(--iot-ink);
  font:600 12px var(--iot-sans);
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
}

/* Individual occasion pages: an image-led split hero. The archive image is
   explicitly captioned as a visual example so it is not presented as the
   memorial / wedding / birth sample described by the page. */
.iot47-moment-hero{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  min-height:830px;
  background:var(--iot-paper);
  color:var(--iot-ink);
}
.iot47-moment-hero-media{
  position:relative;
  min-width:0;
  min-height:830px;
  margin:0;
  overflow:hidden;
  background:#050607;
}
.iot47-moment-hero-media:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.02) 58%,rgba(0,0,0,.40));
  pointer-events:none;
}
.iot47-moment-hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.iot47-moment-hero-copy{
  min-width:0;
  padding:clamp(132px,10vw,170px) 5vw clamp(76px,8vw,118px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.iot47-moment-hero-copy h1{
  max-width:760px;
  margin:18px 0 0;
  font:400 clamp(50px,5.6vw,88px)/.94 var(--iot-serif);
  letter-spacing:-.052em;
  color:var(--iot-ink)!important;
}
.iot47-moment-hero-copy .iot12-lead-strong{
  max-width:760px;
  margin-top:34px;
  font-size:clamp(22px,2vw,31px);
}
.iot47-moment-hero-columns{
  max-width:790px;
  margin-top:42px;
  padding-top:30px;
  border-top:1px solid rgba(0,0,0,.18);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(28px,3.4vw,55px);
}
.iot47-moment-hero-columns p{
  margin:0;
  font:16px/1.68 var(--iot-serif);
}

/* A visual bridge between the occasion and the existing process section. */
.iot47-moment-visual-journey{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:#111;
}
.iot47-moment-visual-journey figure{
  min-width:0;
  margin:0;
  background:var(--iot-paper);
}
.iot47-journey-image{
  height:clamp(360px,42vw,690px);
  overflow:hidden;
  background:#090a0b;
}
.iot47-journey-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.iot47-moment-visual-journey figure:first-child .iot47-journey-image img{
  object-position:center;
}
.iot47-moment-visual-journey figcaption{
  min-height:145px;
  padding:26px 28px 30px;
  display:flex;
  flex-direction:column;
  gap:13px;
  color:var(--iot-ink);
}
.iot47-moment-visual-journey figcaption span{
  font:9px var(--iot-mono);
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#777;
}
.iot47-moment-visual-journey figcaption strong{
  max-width:420px;
  font:400 clamp(23px,2vw,31px)/1.08 var(--iot-serif);
  letter-spacing:-.025em;
}

/* Tear Collection Kit: preserve the V0.46 information architecture but make
   the three use cases visually legible at a glance. */
.iot47-product-moment-grid>a{
  min-height:0!important;
  padding:0!important;
  overflow:hidden;
}
.iot47-product-moment-image{
  position:relative;
  width:100%;
  aspect-ratio:1.18/1;
  margin:0;
  overflow:hidden;
  background:#050607;
}
.iot47-product-moment-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .55s ease;
}
.iot47-product-moment-grid>a:hover .iot47-product-moment-image img{transform:scale(1.025)}
.iot47-product-moment-body{
  flex:1;
  min-height:285px;
  padding:28px 30px 32px;
  display:flex;
  flex-direction:column;
}
.iot47-product-moment-body>span{
  margin-top:auto;
}

@media(max-width:1050px){
  .iot47-moment-hero{grid-template-columns:1fr;min-height:0}
  .iot47-moment-hero-media{min-height:0;height:min(78vw,720px)}
  .iot47-moment-hero-copy{padding-top:72px;padding-bottom:78px}
  .iot47-moment-visual-journey{grid-template-columns:1fr}
  .iot47-journey-image{height:min(86vw,720px)}
  .iot47-moment-visual-journey figcaption{min-height:0}
}

@media(max-width:760px){
  .iot47-home-moments .iot12-participate-copy{padding:70px 24px!important}
  .iot47-home-moment-links{
    display:block;
    margin-top:38px;
    padding-top:23px;
  }
  .iot47-home-moment-links a{
    display:table;
    margin:0 0 15px;
  }
  .iot47-home-moment-links .iot47-home-moment-all{
    margin:27px 0 0;
  }
  .iot47-moment-card-image{aspect-ratio:1.18/1}
  .iot47-moment-card-copy{min-height:0;padding:29px 25px 34px}
  .iot47-moment-hero-media{height:72vw;min-height:390px}
  .iot47-moment-hero-copy{padding:62px 24px 70px}
  .iot47-moment-hero-copy h1{font-size:52px}
  .iot47-moment-hero-columns{grid-template-columns:1fr;gap:24px;margin-top:34px}
  .iot47-journey-image{height:82vw;min-height:360px}
  .iot47-moment-visual-journey figcaption{padding:23px 24px 27px}
  .iot47-product-moment-image{aspect-ratio:1.22/1}
  .iot47-product-moment-body{min-height:0;padding:26px 23px 30px}
}

/* ========================================================================
   V0.53 — image-led Collaborations and Licensing landing pages
   ======================================================================== */
.iot50-commercial-hero{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  min-height:830px;
  background:var(--iot-paper);
  color:var(--iot-ink);
}
.iot50-commercial-hero-media{
  position:relative;
  min-width:0;
  min-height:830px;
  margin:0;
  overflow:hidden;
  background:#070809;
}
.iot50-commercial-hero-media:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.01) 58%,rgba(0,0,0,.36));
  pointer-events:none;
}
.iot50-commercial-hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.iot50-commercial-hero-media figcaption,
.iot50-commercial-feature-media figcaption{
  position:absolute;
  left:20px;
  right:20px;
  bottom:17px;
  z-index:2;
  margin:0;
  color:#fff;
  font:9px/1.35 var(--iot-mono);
  letter-spacing:.09em;
  text-transform:uppercase;
  text-shadow:0 1px 12px rgba(0,0,0,.72);
}
.iot50-commercial-hero-copy{
  min-width:0;
  padding:clamp(132px,10vw,170px) 5vw clamp(76px,8vw,118px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.iot50-commercial-hero-copy h1{
  max-width:790px;
  margin:18px 0 0;
  font:400 clamp(50px,5.6vw,88px)/.94 var(--iot-serif);
  letter-spacing:-.052em;
  color:var(--iot-ink)!important;
}
.iot50-commercial-hero-copy .iot12-lead-strong{
  max-width:790px;
  margin-top:34px;
  font-size:clamp(22px,2vw,31px);
}
.iot50-commercial-hero-columns{
  max-width:810px;
  margin-top:42px;
  padding-top:30px;
  border-top:1px solid rgba(0,0,0,.18);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(28px,3.4vw,55px);
}
.iot50-commercial-hero-columns p{
  margin:0;
  font:16px/1.68 var(--iot-serif);
}
.iot50-commercial-grid-wrap{padding-top:7vw}

.iot50-commercial-feature{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  min-height:700px;
  background:var(--iot-warm);
  color:var(--iot-ink);
}
.iot50-commercial-feature--reverse{
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
}
.iot50-commercial-feature--reverse .iot50-commercial-feature-media{order:2}
.iot50-commercial-feature--reverse .iot50-commercial-feature-copy{order:1}
.iot50-commercial-feature-media{
  position:relative;
  min-width:0;
  min-height:700px;
  margin:0;
  overflow:hidden;
  background:#08090a;
}
.iot50-commercial-feature-media:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.01) 64%,rgba(0,0,0,.33));
  pointer-events:none;
}
.iot50-commercial-feature-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.iot50-commercial-feature-copy{
  padding:clamp(70px,8vw,130px) 5vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.iot50-commercial-feature-copy h2{
  margin:16px 0 26px;
  max-width:700px;
  font:400 clamp(44px,5vw,78px)/.95 var(--iot-serif);
  letter-spacing:-.05em;
  color:var(--iot-ink)!important;
}
.iot50-commercial-feature-copy .iot12-lead-strong{
  max-width:700px;
  margin:0;
  font-size:clamp(20px,1.8vw,28px);
}

.iot50-commercial-video{
  display:grid;
  grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);
  gap:0;
  background:var(--iot-black);
  color:var(--iot-white);
}
.iot50-commercial-video-copy{
  padding:clamp(70px,8vw,130px) 5vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.iot50-commercial-video-copy h2{
  margin:16px 0 28px;
  max-width:620px;
  font:400 clamp(42px,4.7vw,72px)/.96 var(--iot-serif);
  letter-spacing:-.047em;
  color:#fff!important;
}
.iot50-commercial-video-copy p{
  max-width:590px;
  margin:0;
  color:#c7c5c0;
  font:17px/1.68 var(--iot-serif);
}
.iot50-commercial-video-frame{
  min-width:0;
  align-self:center;
  aspect-ratio:16/9;
  background:#000;
}
.iot50-commercial-video-frame iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}

@media(max-width:1050px){
  .iot50-commercial-hero{grid-template-columns:1fr;min-height:0}
  .iot50-commercial-hero-media{min-height:0;height:min(74vw,720px)}
  .iot50-commercial-hero-copy{padding-top:72px;padding-bottom:82px}
  .iot50-commercial-feature,
  .iot50-commercial-feature--reverse{grid-template-columns:1fr;min-height:0}
  .iot50-commercial-feature--reverse .iot50-commercial-feature-media,
  .iot50-commercial-feature--reverse .iot50-commercial-feature-copy{order:initial}
  .iot50-commercial-feature-media{min-height:0;height:min(72vw,720px)}
  .iot50-commercial-video{grid-template-columns:1fr}
  .iot50-commercial-video-frame{width:100%}
}

@media(max-width:760px){
  .iot50-commercial-hero-media{height:72vw;min-height:390px}
  .iot50-commercial-hero-copy{padding:62px 24px 70px}
  .iot50-commercial-hero-copy h1{font-size:52px}
  .iot50-commercial-hero-columns{grid-template-columns:1fr;gap:24px;margin-top:34px}
  .iot50-commercial-grid-wrap{padding-top:56px}
  .iot50-commercial-feature-media{height:76vw;min-height:390px}
  .iot50-commercial-feature-copy{padding:62px 24px 70px}
  .iot50-commercial-feature-copy h2{font-size:48px}
  .iot50-commercial-video-copy{padding:62px 24px 55px}
  .iot50-commercial-video-copy h2{font-size:48px}
}

/* ========================================================================
   V0.53 — balanced commercial rows + collaboration case-study proof
   ======================================================================== */
.iot50-commercial-grid-wrap .iot12-commercial-grid{
  width:100%;
  max-width:none;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.iot50-commercial-grid-wrap .iot12-commercial-card{
  min-height:260px;
  padding:clamp(28px,2.6vw,44px);
}
.iot50-commercial-grid-wrap .iot12-commercial-card h2{
  font-size:clamp(27px,2.35vw,42px);
}
.iot50-commercial-grid-wrap .iot12-commercial-card p{
  font-size:15px;
  line-height:1.62;
}
.iot51-video-fallback{margin-top:24px!important}
.iot51-video-fallback a,
.iot51-vimeo-copy a,
.iot51-case-links a{
  display:inline-block;
  color:inherit!important;
  font:600 12px/1.2 var(--iot-sans);
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
}
.iot51-cases-intro{
  background:var(--iot-paper);
  color:var(--iot-ink);
  padding:clamp(90px,10vw,160px) 5vw clamp(65px,7vw,105px);
}
.iot51-cases-intro h2{
  margin:16px 0 28px;
  max-width:1150px;
  font:400 clamp(48px,6vw,92px)/.94 var(--iot-serif);
  letter-spacing:-.052em;
  color:var(--iot-ink)!important;
}
.iot51-cases-intro .iot12-lead-strong{max-width:900px}
.iot51-case{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  min-height:720px;
  background:var(--iot-warm);
  color:var(--iot-ink);
}
.iot51-case:nth-of-type(even){background:var(--iot-paper)}
.iot51-case--reverse{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)}
.iot51-case--reverse .iot51-case-media{order:2}
.iot51-case--reverse .iot51-case-copy{order:1}
.iot51-case-media{
  position:relative;
  margin:0;
  min-width:0;
  min-height:720px;
  overflow:hidden;
  background:#08090a;
}
.iot51-case-media>img:first-child{
  width:100%;
  height:100%;
  object-fit:cover;
}
.iot51-case-media .iot51-case-secondary{
  position:absolute;
  right:clamp(18px,3vw,48px);
  bottom:clamp(18px,3vw,48px);
  width:min(34%,360px);
  height:auto;
  max-height:72%;
  object-fit:contain;
  box-shadow:0 12px 42px rgba(0,0,0,.3);
  border:1px solid rgba(255,255,255,.45);
}
.iot51-case-copy{
  padding:clamp(72px,8vw,128px) 5vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.iot51-case-copy h2{
  margin:16px 0 28px;
  max-width:700px;
  font:400 clamp(46px,5.3vw,80px)/.94 var(--iot-serif);
  letter-spacing:-.052em;
  color:var(--iot-ink)!important;
}
.iot51-case-copy>.iot12-lead-strong{
  max-width:690px;
  margin:0 0 24px;
  font-size:clamp(20px,1.8vw,28px);
}
.iot51-case-copy>p:not(.iot12-lead-strong){
  max-width:670px;
  margin:0;
  font:16px/1.7 var(--iot-serif);
}
.iot51-recognition{
  max-width:670px;
  margin-top:38px;
  padding-top:22px;
  border-top:1px solid rgba(0,0,0,.18);
}
.iot51-recognition span{
  display:block;
  margin-bottom:9px;
  font:9px/1.2 var(--iot-mono);
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#6d6b67;
}
.iot51-recognition p{margin:0;font:600 14px/1.55 var(--iot-sans)}
.iot51-case-links{display:flex;flex-wrap:wrap;gap:22px;margin-top:28px}
.iot51-vimeo-feature{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);
  background:var(--iot-black);
  color:#fff;
}
.iot51-vimeo-frame{aspect-ratio:16/9;min-width:0;background:#000}
.iot51-vimeo-frame iframe{display:block;width:100%;height:100%;border:0}
.iot51-vimeo-copy{padding:clamp(50px,6vw,96px) 5vw;display:flex;flex-direction:column;justify-content:center}
.iot51-vimeo-copy h3{margin:15px 0 20px;font:400 clamp(36px,4vw,58px)/.96 var(--iot-serif);letter-spacing:-.045em;color:#fff!important}
.iot51-vimeo-copy p{margin:0 0 26px;max-width:520px;color:#c7c5c0;font:16px/1.65 var(--iot-serif)}
.iot51-vimeo-copy a{color:#fff!important;align-self:flex-start}

@media(max-width:1180px){
  .iot50-commercial-grid-wrap .iot12-commercial-grid{grid-template-columns:1fr 1fr}
  .iot51-case,.iot51-case--reverse{grid-template-columns:1fr;min-height:0}
  .iot51-case--reverse .iot51-case-media,.iot51-case--reverse .iot51-case-copy{order:initial}
  .iot51-case-media{min-height:0;height:min(72vw,760px)}
  .iot51-vimeo-feature{grid-template-columns:1fr}
}
@media(max-width:760px){
  .iot50-commercial-grid-wrap .iot12-commercial-grid{grid-template-columns:1fr}
  .iot50-commercial-grid-wrap .iot12-commercial-card{min-height:0;padding:34px 28px}
  .iot51-cases-intro{padding:74px 24px 58px}
  .iot51-cases-intro h2{font-size:50px}
  .iot51-case-media{height:78vw;min-height:390px}
  .iot51-case-copy{padding:62px 24px 72px}
  .iot51-case-copy h2{font-size:50px}
  .iot51-case-media .iot51-case-secondary{width:31%;right:16px;bottom:16px}
  .iot51-vimeo-copy{padding:55px 24px 64px}
}

/* -------------------------------------------------------------
   V0.55 — Licensing & Media: editorial/broadcast proof system
-------------------------------------------------------------- */
.iot55-license-types .iot12-commercial-card{min-height:220px}
.iot55-license-media-pair{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);
  background:#0a0a0a;
  color:#fff;
}
.iot55-license-media{
  margin:0;
  min-width:0;
  position:relative;
  background:#000;
  min-height:620px;
}
.iot55-license-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.iot55-license-media figcaption{
  position:absolute;
  left:24px;
  bottom:18px;
  z-index:2;
  padding:7px 10px;
  background:rgba(0,0,0,.72);
  color:#fff;
  font:9px/1.2 var(--iot-mono);
  text-transform:uppercase;
  letter-spacing:.1em;
}
.iot55-license-media-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(60px,7vw,110px) clamp(38px,6vw,90px);
}
.iot55-license-media-copy .iot12-micro{color:#8f8d88}
.iot55-license-media-copy h2{
  margin:15px 0 24px;
  color:#fff!important;
  font:400 clamp(46px,5vw,78px)/.95 var(--iot-serif);
  letter-spacing:-.05em;
}
.iot55-license-media-copy .iot12-lead-strong{
  max-width:690px;
  margin:0 0 22px;
  color:#fff!important;
  font-size:clamp(20px,1.8vw,28px);
}
.iot55-license-media-copy>p:not(.iot12-lead-strong){
  max-width:670px;
  margin:0;
  color:#cbc8c2;
  font:16px/1.7 var(--iot-serif);
}
.iot55-license-media-links{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin-top:30px;
}
.iot55-license-media-links a{color:#fff!important;text-decoration:underline;text-underline-offset:4px}
.iot55-license-choice{
  padding:clamp(72px,9vw,130px) 0;
  background:#f0ebe3;
}
.iot55-license-choice h2{
  max-width:980px;
  margin:14px 0 42px;
  font:400 clamp(50px,6vw,86px)/.93 var(--iot-serif);
  letter-spacing:-.055em;
}
.iot55-license-choice-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid rgba(0,0,0,.15);
  border-left:1px solid rgba(0,0,0,.15);
}
.iot55-license-choice-grid>div{
  padding:34px 36px 38px;
  border-right:1px solid rgba(0,0,0,.15);
  border-bottom:1px solid rgba(0,0,0,.15);
}
.iot55-license-choice-grid h3{
  margin:0 0 18px;
  font:400 clamp(30px,3.1vw,46px)/1 var(--iot-serif);
  letter-spacing:-.04em;
}
.iot55-license-choice-grid p{margin:0 0 24px;max-width:580px;font:16px/1.65 var(--iot-serif)}
.iot55-license-choice-grid a{color:var(--iot-ink)!important;font-weight:600}
.iot55-license-proof-strip{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(420px,.82fr);
  background:#fff;
}
.iot55-license-proof-media{min-height:610px;background:#efede8}
.iot55-license-proof-media img{display:block;width:100%;height:100%;object-fit:cover}
.iot55-license-proof-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(58px,7vw,105px) clamp(38px,6vw,90px);
}
.iot55-license-proof-copy h2{
  margin:15px 0 24px;
  font:400 clamp(44px,4.8vw,72px)/.96 var(--iot-serif);
  letter-spacing:-.05em;
}
.iot55-license-proof-copy .iot12-lead-strong{max-width:650px;margin:0 0 30px;font-size:clamp(19px,1.7vw,26px)}
@media(max-width:1180px){
  .iot55-license-media-pair,.iot55-license-proof-strip{grid-template-columns:1fr}
  .iot55-license-media,.iot55-license-proof-media{min-height:0;height:min(70vw,720px)}
}
@media(max-width:760px){
  .iot55-license-media,.iot55-license-proof-media{height:76vw;min-height:360px}
  .iot55-license-media-copy,.iot55-license-proof-copy{padding:58px 24px 66px}
  .iot55-license-media-copy h2,.iot55-license-proof-copy h2{font-size:48px}
  .iot55-license-choice{padding:72px 24px}
  .iot55-license-choice .iot12-content{padding-left:0!important;padding-right:0!important}
  .iot55-license-choice-grid{grid-template-columns:1fr}
  .iot55-license-choice-grid>div{padding:28px 24px 32px}
}

/* =========================================================
   V0.61 — Licensing page rebuild
   Keep selected editorial imagery at its natural ratio and
   distinguish print proof from broadcast / documentary use.
   ========================================================= */
.iot56-license-hero{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(420px,.82fr);
  align-items:start;
  background:var(--iot-paper);
  color:var(--iot-ink);
}
.iot56-license-hero-media{
  margin:0;
  min-width:0;
  position:relative;
  align-self:start;
  background:#ece8e1;
}
.iot56-license-hero-media img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.iot56-license-hero-media figcaption,
.iot56-license-editorial-media figcaption,
.iot56-license-broadcast-media figcaption{
  position:absolute;
  left:18px;
  bottom:16px;
  z-index:2;
  max-width:calc(100% - 36px);
  padding:7px 10px;
  background:rgba(0,0,0,.7);
  color:#fff;
  font:9px/1.3 var(--iot-mono);
  letter-spacing:.1em;
  text-transform:uppercase;
}
.iot56-license-hero-copy{
  min-width:0;
  padding:clamp(66px,6vw,100px) clamp(34px,5vw,76px) clamp(58px,6vw,92px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.iot56-license-hero-copy h1{
  max-width:720px;
  margin:15px 0 0;
  font:400 clamp(44px,4.7vw,72px)/.95 var(--iot-serif);
  letter-spacing:-.05em;
  color:var(--iot-ink)!important;
}
.iot56-license-hero-copy .iot12-lead-strong{
  max-width:690px;
  margin:27px 0 22px;
  font-size:clamp(20px,1.75vw,28px);
}
.iot56-license-hero-copy>p:not(.iot12-lead-strong){
  max-width:650px;
  margin:0 0 14px;
  font:15.5px/1.65 var(--iot-serif);
}

.iot56-license-editorial{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr);
  align-items:start;
  background:var(--iot-warm);
  color:var(--iot-ink);
}
.iot56-license-editorial-media,
.iot56-license-broadcast-media{
  margin:0;
  min-width:0;
  position:relative;
  align-self:start;
}
.iot56-license-editorial-media{background:#ece8e1}
.iot56-license-editorial-media img,
.iot56-license-broadcast-media img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.iot56-license-editorial-copy,
.iot56-license-broadcast-copy{
  min-width:0;
  padding:clamp(64px,7vw,108px) clamp(34px,5vw,78px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.iot56-license-editorial-copy h2,
.iot56-license-broadcast-copy h2{
  max-width:720px;
  margin:15px 0 24px;
  font:400 clamp(43px,4.8vw,72px)/.95 var(--iot-serif);
  letter-spacing:-.05em;
}
.iot56-license-editorial-copy .iot12-lead-strong,
.iot56-license-broadcast-copy .iot12-lead-strong{
  max-width:680px;
  margin:0 0 22px;
  font-size:clamp(20px,1.75vw,28px);
}
.iot56-license-editorial-copy>p:not(.iot12-lead-strong),
.iot56-license-broadcast-copy>p:not(.iot12-lead-strong){
  max-width:660px;
  margin:0;
  font:16px/1.68 var(--iot-serif);
}

.iot56-license-broadcast{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
  align-items:start;
  background:#090909;
  color:#fff;
}
.iot56-license-broadcast-media{background:#000}
.iot56-license-broadcast-copy .iot12-micro{color:#8f8d88}
.iot56-license-broadcast-copy h2{color:#fff!important}
.iot56-license-broadcast-copy .iot12-lead-strong{color:#fff!important}
.iot56-license-broadcast-copy>p:not(.iot12-lead-strong){color:#c9c6c1}
.iot56-license-media-links{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  margin-top:30px;
}
.iot56-license-media-links a{
  color:#fff!important;
  text-decoration:underline;
  text-underline-offset:4px;
}

/* Correct the V0.55 choice section alignment: it previously began at the
   viewport edge while surrounding editorial sections use a 5vw inset. */
.iot55-license-choice{
  padding:clamp(72px,9vw,130px) 5vw;
}
.iot56-license-choice-inner{
  width:100%;
  max-width:1120px;
  margin:0;
}
.iot56-license-choice-inner>h2{
  max-width:980px;
  margin:14px 0 42px;
  font:400 clamp(50px,6vw,86px)/.93 var(--iot-serif);
  letter-spacing:-.055em;
}

@media(max-width:1280px){
  .iot56-license-hero,
  .iot56-license-editorial,
  .iot56-license-broadcast{grid-template-columns:1fr}
  .iot56-license-hero-copy,
  .iot56-license-editorial-copy,
  .iot56-license-broadcast-copy{padding-top:66px;padding-bottom:76px}
}
@media(max-width:760px){
  .iot56-license-hero-copy,
  .iot56-license-editorial-copy,
  .iot56-license-broadcast-copy{padding:54px 24px 64px}
  .iot56-license-hero-copy h1{font-size:50px}
  .iot56-license-editorial-copy h2,
  .iot56-license-broadcast-copy h2{font-size:48px}
  .iot55-license-choice{padding:72px 24px}
}

/* =========================================================
   V0.61 — Licensing image selection + broadcast fit
   ========================================================= */
/* Hero: one NRC Handelsblad cover, kept in its natural portrait ratio. */
.iot57-license-hero{
  grid-template-columns:minmax(330px,41vw) minmax(0,1fr);
  align-items:center;
}
.iot57-license-hero .iot56-license-hero-media{
  background:var(--iot-paper);
}
.iot57-license-hero .iot56-license-hero-media img{
  width:100%;
  height:auto;
  object-fit:contain;
}
.iot57-license-hero .iot56-license-hero-copy{
  padding:clamp(48px,5vw,82px) clamp(34px,5vw,76px);
}
.iot57-license-hero .iot56-license-hero-copy h1{
  font-size:clamp(42px,4.3vw,68px);
  line-height:.96;
}
.iot57-license-hero .iot56-license-hero-copy .iot12-lead-strong{
  font-size:clamp(19px,1.55vw,25px);
  margin:23px 0 18px;
}
.iot57-license-hero .iot56-license-hero-copy>p:not(.iot12-lead-strong){
  font-size:15px;
  line-height:1.58;
  margin-bottom:11px;
}

/* Editorial proof: one De Standaard front page only. */
.iot57-license-editorial{
  grid-template-columns:minmax(320px,39vw) minmax(0,1fr);
  align-items:center;
}
.iot57-license-editorial .iot56-license-editorial-media{
  background:var(--iot-warm);
}
.iot57-license-editorial .iot56-license-editorial-media img{
  width:100%;
  height:auto;
  object-fit:contain;
}
.iot57-license-editorial .iot56-license-editorial-copy{
  padding:clamp(48px,5.5vw,88px) clamp(34px,5vw,78px);
}
.iot57-license-editorial .iot56-license-editorial-copy h2{
  font-size:clamp(40px,4.2vw,66px);
  line-height:.96;
  margin-bottom:20px;
}
.iot57-license-editorial .iot56-license-editorial-copy .iot12-lead-strong{
  font-size:clamp(19px,1.55vw,25px);
  margin-bottom:18px;
}

/* Broadcast: the media column now fills the section height. The image keeps
   its aspect ratio and is cropped only as needed, eliminating the black bar
   that previously appeared below the photograph. Copy is tightened so the
   two columns remain visually balanced. */
.iot57-license-broadcast{
  grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr);
  align-items:stretch;
}
.iot57-license-broadcast .iot56-license-broadcast-media{
  align-self:stretch;
  min-height:0;
  overflow:hidden;
  background:transparent;
}
.iot57-license-broadcast .iot56-license-broadcast-media img{
  width:100%;
  height:100%;
  min-height:100%;
  object-fit:cover;
  object-position:center;
}
.iot57-license-broadcast .iot56-license-broadcast-copy{
  padding:clamp(44px,4.6vw,72px) clamp(32px,4.4vw,66px);
}
.iot57-license-broadcast .iot56-license-broadcast-copy h2{
  font-size:clamp(38px,4vw,60px);
  line-height:.96;
  margin:13px 0 18px;
}
.iot57-license-broadcast .iot56-license-broadcast-copy .iot12-lead-strong{
  font-size:clamp(18px,1.45vw,23px);
  line-height:1.35;
  margin-bottom:16px;
}
.iot57-license-broadcast .iot56-license-broadcast-copy>p:not(.iot12-lead-strong){
  font-size:15px;
  line-height:1.55;
}
.iot57-license-broadcast .iot56-license-media-links{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px 22px;
  margin-top:22px;
}
.iot57-license-broadcast .iot56-license-media-links a{
  font-size:13px;
  line-height:1.4;
}

/* Match the standard editorial inset used throughout the rest of the site. */
.iot57-license-choice{
  padding:9vw 5vw;
}
.iot57-license-choice .iot56-license-choice-inner{
  max-width:1120px;
  width:100%;
  margin:0;
}

@media(max-width:1280px){
  .iot57-license-hero,
  .iot57-license-editorial,
  .iot57-license-broadcast{grid-template-columns:1fr}
  .iot57-license-hero .iot56-license-hero-media,
  .iot57-license-editorial .iot56-license-editorial-media{
    width:min(100%,760px);
  }
  .iot57-license-broadcast .iot56-license-broadcast-media{
    height:min(72vw,760px);
  }
  .iot57-license-broadcast .iot56-license-broadcast-media img{height:100%}
}
@media(max-width:760px){
  .iot57-license-hero .iot56-license-hero-media,
  .iot57-license-editorial .iot56-license-editorial-media{width:100%}
  .iot57-license-broadcast .iot56-license-broadcast-media{height:74vw;min-height:330px}
  .iot57-license-broadcast .iot56-license-media-links{grid-template-columns:1fr}
  .iot57-license-choice{padding:72px 24px}
}

/* =========================================================
   V0.61 — image-sized licensing split blocks
   On desktop the image is the sizing element: it keeps its
   original aspect ratio and determines the section height.
   Copy is fitted inside the matching column rather than
   stretching/cropping the photograph to match the text.
   ========================================================= */
@media(min-width:1281px){
  .iot57-license-hero,
  .iot57-license-editorial,
  .iot57-license-broadcast{
    position:relative;
    display:block;
    min-height:0;
    overflow:hidden;
  }

  /* NRC cover: image ratio controls the complete hero height. */
  .iot57-license-hero .iot56-license-hero-media{
    width:clamp(390px,36vw,620px);
    margin:0;
    position:relative;
  }
  .iot57-license-hero .iot56-license-hero-media img{
    display:block;
    width:100%;
    height:auto;
    object-fit:contain;
  }
  .iot57-license-hero .iot56-license-hero-copy{
    position:absolute;
    left:clamp(390px,36vw,620px);
    right:0;
    top:0;
    bottom:0;
    padding:clamp(32px,3.5vw,64px) clamp(34px,4.6vw,76px);
    justify-content:center;
    overflow:hidden;
  }
  .iot57-license-hero .iot56-license-hero-copy h1{
    font-size:clamp(38px,3.7vw,62px);
    line-height:.95;
    margin-top:12px;
  }
  .iot57-license-hero .iot56-license-hero-copy .iot12-lead-strong{
    font-size:clamp(18px,1.35vw,23px);
    line-height:1.28;
    margin:20px 0 15px;
  }
  .iot57-license-hero .iot56-license-hero-copy>p:not(.iot12-lead-strong){
    font-size:14.5px;
    line-height:1.5;
    margin-bottom:9px;
  }

  /* De Standaard cover: same image-driven model. */
  .iot57-license-editorial .iot56-license-editorial-media{
    width:clamp(350px,33vw,555px);
    margin:0;
    position:relative;
  }
  .iot57-license-editorial .iot56-license-editorial-media img{
    display:block;
    width:100%;
    height:auto;
    object-fit:contain;
  }
  .iot57-license-editorial .iot56-license-editorial-copy{
    position:absolute;
    left:clamp(350px,33vw,555px);
    right:0;
    top:0;
    bottom:0;
    padding:clamp(32px,3.5vw,62px) clamp(34px,4.8vw,78px);
    justify-content:center;
    overflow:hidden;
  }
  .iot57-license-editorial .iot56-license-editorial-copy h2{
    font-size:clamp(38px,3.65vw,60px);
    line-height:.95;
    margin:12px 0 18px;
  }
  .iot57-license-editorial .iot56-license-editorial-copy .iot12-lead-strong{
    font-size:clamp(18px,1.35vw,23px);
    line-height:1.3;
    margin-bottom:15px;
  }
  .iot57-license-editorial .iot56-license-editorial-copy>p:not(.iot12-lead-strong){
    font-size:14.5px;
    line-height:1.52;
  }

  /* Sky Arts: keep the photograph uncropped. Its natural ratio sets the
     black block height; typography and links scale to fit beside it. */
  .iot57-license-broadcast .iot56-license-broadcast-media{
    width:58%;
    margin:0;
    position:relative;
    min-height:0;
    height:auto;
    overflow:visible;
    background:#000;
  }
  .iot57-license-broadcast .iot56-license-broadcast-media img{
    display:block;
    width:100%;
    height:auto;
    min-height:0;
    object-fit:contain;
    object-position:center;
  }
  .iot57-license-broadcast .iot56-license-broadcast-copy{
    position:absolute;
    left:58%;
    right:0;
    top:0;
    bottom:0;
    padding:clamp(24px,2.7vw,48px) clamp(26px,3.4vw,58px);
    justify-content:center;
    overflow:hidden;
  }
  .iot57-license-broadcast .iot56-license-broadcast-copy h2{
    font-size:clamp(32px,3vw,50px);
    line-height:.96;
    margin:10px 0 14px;
  }
  .iot57-license-broadcast .iot56-license-broadcast-copy .iot12-lead-strong{
    font-size:clamp(16px,1.18vw,20px);
    line-height:1.28;
    margin-bottom:12px;
  }
  .iot57-license-broadcast .iot56-license-broadcast-copy>p:not(.iot12-lead-strong){
    font-size:13.5px;
    line-height:1.45;
  }
  .iot57-license-broadcast .iot56-license-media-links{
    grid-template-columns:1fr;
    gap:6px;
    margin-top:15px;
  }
  .iot57-license-broadcast .iot56-license-media-links a{
    font-size:12.5px;
    line-height:1.28;
  }
}

/* =========================================================
   V0.61 — Licensing: paired print covers + digital editorial proof
   ========================================================= */
.iot59-license-hero{
  display:grid;
  grid-template-columns:minmax(0,1.14fr) minmax(360px,.86fr);
  align-items:start;
  background:#f3f0ea;
  color:var(--iot-ink);
  border-bottom:1px solid rgba(0,0,0,.08);
}
.iot59-license-hero-media{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:start;
  gap:clamp(12px,1.4vw,24px);
  padding:clamp(20px,2.8vw,44px);
  background:#e9e5de;
}
.iot59-license-hero-media figure{
  margin:0;
  min-width:0;
}
.iot59-license-hero-media img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  background:#fff;
  box-shadow:0 10px 28px rgba(0,0,0,.08);
}
.iot59-license-hero-media figcaption,
.iot59-editorial-proof-media figcaption{
  padding-top:10px;
  font:9px/1.35 var(--iot-mono);
  letter-spacing:.11em;
  text-transform:uppercase;
  color:#66615a;
}
.iot59-license-hero-copy{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(40px,4.6vw,78px) clamp(34px,5vw,84px);
  overflow:hidden;
}
.iot59-license-hero-copy h1{
  margin:12px 0 22px;
  max-width:720px;
  font:400 clamp(42px,4.1vw,68px)/.93 var(--iot-serif);
  letter-spacing:-.052em;
  color:var(--iot-ink)!important;
}
.iot59-license-hero-copy .iot12-lead-strong{
  max-width:660px;
  margin:0 0 18px;
  font-size:clamp(18px,1.45vw,25px);
  line-height:1.28;
}
.iot59-license-hero-copy>p:not(.iot12-lead-strong){
  max-width:650px;
  margin:0 0 11px;
  font:14.5px/1.55 var(--iot-serif);
}

.iot59-editorial-proof{
  display:grid;
  grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);
  align-items:center;
  background:#fff;
  border-top:1px solid rgba(0,0,0,.08);
  border-bottom:1px solid rgba(0,0,0,.08);
}
.iot59-editorial-proof-copy{
  padding:clamp(48px,5vw,86px) clamp(34px,4.8vw,78px);
}
.iot59-editorial-proof-copy h2{
  margin:12px 0 22px;
  max-width:620px;
  font:400 clamp(40px,4vw,64px)/.94 var(--iot-serif);
  letter-spacing:-.05em;
  color:var(--iot-ink)!important;
}
.iot59-editorial-proof-copy .iot12-lead-strong{
  max-width:590px;
  margin:0 0 18px;
  font-size:clamp(18px,1.5vw,25px);
  line-height:1.32;
}
.iot59-editorial-proof-copy>p:not(.iot12-lead-strong){
  max-width:570px;
  margin:0;
  font:15px/1.62 var(--iot-serif);
}
.iot59-editorial-proof-media{
  display:grid;
  grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr);
  gap:clamp(14px,1.5vw,24px);
  align-items:start;
  padding:clamp(24px,3.2vw,52px);
  background:#efebe5;
}
.iot59-editorial-proof-media figure{
  margin:0;
  min-width:0;
}
.iot59-editorial-proof-media img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  background:#fff;
  box-shadow:0 9px 24px rgba(0,0,0,.07);
}
.iot59-proof-stack{
  display:flex;
  flex-direction:column;
  gap:clamp(16px,1.6vw,26px);
}
.iot59-proof-stack figure{margin:0}

@media(max-width:1180px){
  .iot59-license-hero,
  .iot59-editorial-proof{grid-template-columns:1fr}
  .iot59-license-hero-copy,
  .iot59-editorial-proof-copy{padding:60px clamp(28px,6vw,72px) 70px}
  .iot59-license-hero-media{padding:clamp(18px,4vw,44px)}
  .iot59-editorial-proof-media{padding:clamp(18px,4vw,44px)}
}
@media(max-width:700px){
  .iot59-license-hero-media{
    gap:10px;
    padding:14px;
  }
  .iot59-license-hero-media figcaption,
  .iot59-editorial-proof-media figcaption{font-size:8px}
  .iot59-license-hero-copy,
  .iot59-editorial-proof-copy{padding:52px 24px 62px}
  .iot59-license-hero-copy h1,
  .iot59-editorial-proof-copy h2{font-size:46px}
  .iot59-editorial-proof-media{
    grid-template-columns:1fr;
    padding:18px;
  }
  .iot59-proof-mail{max-width:520px;margin:0 auto!important}
}

/* =========================================================
   V0.61 — Licensing visual normalization
   One continuous white canvas for the two media-led sections.
   Covers/screenshots share a common displayed height while each
   image keeps its native aspect ratio (no stretch, no crop).
   ========================================================= */

/* Hero: one white canvas for covers + copy. */
.iot59-license-hero{
  background:#fff;
  align-items:stretch;
}
.iot59-license-hero-media{
  background:#fff;
  align-items:end;
  justify-items:center;
}
.iot59-license-hero-media figure{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  width:100%;
  height:100%;
}
.iot59-license-hero-media img{
  width:auto;
  height:clamp(380px,35vw,700px);
  max-width:100%;
  object-fit:contain;
  object-position:center bottom;
  margin:auto auto 0;
}
.iot59-license-hero-media figcaption{
  width:100%;
  text-align:center;
}
.iot59-license-hero-copy{
  background:#fff;
}

/* Editorial proof: keep text and website screenshots on one white canvas. */
.iot59-editorial-proof{
  background:#fff;
  align-items:stretch;
}
.iot59-editorial-proof-copy{
  background:#fff;
  align-self:center;
}
.iot59-editorial-proof-media{
  background:#fff;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,1.3vw,22px);
  align-items:end;
  justify-items:center;
}
.iot59-editorial-proof-media .iot59-proof-mail,
.iot59-editorial-proof-media .iot59-proof-stack{
  display:contents;
}
.iot59-editorial-proof-media figure{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  width:100%;
  height:100%;
}
.iot59-editorial-proof-media img{
  width:100%;
  height:clamp(190px,17vw,320px);
  max-width:100%;
  object-fit:contain;
  object-position:center bottom;
  background:#fff;
  box-shadow:0 8px 20px rgba(0,0,0,.055);
}
.iot59-editorial-proof-media figcaption{
  width:100%;
  text-align:center;
}

@media(max-width:1180px){
  .iot59-license-hero-media img{
    height:clamp(420px,58vw,680px);
  }
  .iot59-editorial-proof-media{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .iot59-editorial-proof-media img{
    height:clamp(170px,24vw,290px);
  }
}

@media(max-width:700px){
  .iot59-license-hero-media{
    grid-template-columns:1fr 1fr;
    align-items:end;
  }
  .iot59-license-hero-media img{
    height:58vw;
    max-height:430px;
  }
  .iot59-editorial-proof-media{
    grid-template-columns:1fr;
    gap:24px;
  }
  .iot59-editorial-proof-media .iot59-proof-mail,
  .iot59-editorial-proof-media .iot59-proof-stack{
    display:contents;
  }
  .iot59-editorial-proof-media img{
    width:100%;
    height:auto;
    max-height:none;
  }
}

/* =========================================================
   V0.61 — Licensing editorial proof mosaic refinement
   Restore the stronger editorial composition: one tall
   MailOnline page on the left, two wide website captures
   stacked on the right. Keep the continuous white canvas and
   preserve every source image's native aspect ratio.
   ========================================================= */
.iot59-editorial-proof-media{
  grid-template-columns:minmax(240px,.62fr) minmax(0,1fr);
  gap:clamp(16px,1.6vw,28px);
  align-items:start;
  justify-items:stretch;
  background:#fff;
}
.iot59-editorial-proof-media .iot59-proof-mail{
  display:flex;
  flex-direction:column;
  width:100%;
  height:auto;
  margin:0;
}
.iot59-editorial-proof-media .iot59-proof-stack{
  display:flex;
  flex-direction:column;
  gap:clamp(16px,1.6vw,28px);
  width:100%;
  height:auto;
}
.iot59-editorial-proof-media .iot59-proof-stack figure{
  display:flex;
  flex-direction:column;
  width:100%;
  height:auto;
  margin:0;
}
.iot59-editorial-proof-media .iot59-proof-mail img,
.iot59-editorial-proof-media .iot59-proof-stack img{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  object-position:center top;
  background:#fff;
  box-shadow:0 8px 20px rgba(0,0,0,.055);
}
.iot59-editorial-proof-media figcaption{
  width:100%;
  text-align:center;
}

@media(max-width:1180px){
  .iot59-editorial-proof-media{
    grid-template-columns:minmax(220px,.62fr) minmax(0,1fr);
  }
}
@media(max-width:760px){
  .iot59-editorial-proof-media{
    grid-template-columns:1fr;
    gap:24px;
  }
  .iot59-editorial-proof-media .iot59-proof-mail,
  .iot59-editorial-proof-media .iot59-proof-stack{
    display:flex;
  }
}

/* =========================================================
   V0.62.2 — FAQ editorial integration
   Core plugin normalises the stored WordPress/WPBakery content at render time.
   These rules are presentation-only and scoped to /faq/.
   ========================================================= */
body.iot12-utility.iot12-faq-page{background:var(--iot-paper)!important}

/* Keep the page title aligned with the rest of the site's utility pages, but
   give the FAQ enough room for a useful editorial lead. */
.iot12-utility-faq .iot12-utility-head-inner{max-width:1180px}
.iot12-utility-faq .iot12-utility-lead{
 max-width:900px;
 font:400 clamp(22px,2.15vw,31px)/1.45 var(--iot-serif)!important;
 letter-spacing:-.018em;
}

/* Main FAQ canvas. */
.iot12-utility-faq .iot12-utility-body{
 padding-top:clamp(70px,7vw,112px);
}
.iot12-utility-faq .iot12-utility-content{
 max-width:1120px;
 margin:0 auto;
 font-family:var(--iot-serif)!important;
 color:var(--iot-ink);
}
.iot12-utility-faq .iot62-faq-document{
 width:100%;
}

/* Optional introductory copy saved before the first FAQ section. */
.iot12-utility-faq .iot62-faq-intro{
 max-width:800px;
 margin:0 0 clamp(62px,7vw,96px) clamp(0px,5vw,84px);
}
.iot12-utility-faq .iot62-faq-intro p:first-child{
 margin-top:0!important;
 font:400 clamp(22px,2vw,29px)/1.45 var(--iot-serif)!important;
 letter-spacing:-.018em;
 color:var(--iot-ink)!important;
}

/* Major chapters. A generous rule + whitespace creates the same editorial
   rhythm used by the long-form homepage sections. */
.iot12-utility-faq .iot62-faq-section{
 position:relative;
 margin:0;
 padding:clamp(66px,7vw,104px) 0 clamp(70px,7.5vw,112px);
 border-top:1px solid rgba(17,19,21,.17);
}
.iot12-utility-faq .iot62-faq-section:first-child{
 padding-top:0;
 border-top:0;
}
.iot12-utility-faq .iot62-faq-section-title{
 max-width:980px;
 margin:0 0 clamp(40px,5vw,66px)!important;
 padding:0!important;
 border:0!important;
 font:400 clamp(38px,4.6vw,68px)/.99 var(--iot-serif)!important;
 letter-spacing:-.048em!important;
 text-transform:none!important;
 color:var(--iot-ink)!important;
}
.iot12-utility-faq .iot62-faq-section-preamble{
 max-width:790px;
 margin:-25px 0 48px clamp(0px,5vw,84px);
}

/* Individual questions sit on a readable inset column rather than forming one
   dense text block below the large FAQ title. */
.iot12-utility-faq .iot62-faq-items,
.iot12-utility-faq .iot62-faq-section-tail{
 max-width:860px;
 margin-left:clamp(0px,8vw,142px);
}
.iot12-utility-faq .iot62-faq-item{
 margin:0 0 clamp(38px,4.5vw,58px);
 padding:0 0 clamp(34px,4vw,48px);
 border-bottom:1px solid rgba(17,19,21,.11);
}
.iot12-utility-faq .iot62-faq-item:last-child{
 margin-bottom:0;
}
.iot12-utility-faq .iot62-faq-question{
 margin:0 0 13px!important;
 padding:0!important;
 border:0!important;
 font:600 clamp(22px,2.1vw,29px)/1.24 var(--iot-serif)!important;
 letter-spacing:-.025em!important;
 text-transform:none!important;
 color:var(--iot-ink)!important;
}
.iot12-utility-faq .iot62-faq-answer,
.iot12-utility-faq .iot62-faq-section-preamble,
.iot12-utility-faq .iot62-faq-intro,
.iot12-utility-faq .iot62-faq-section-tail{
 font-family:var(--iot-serif)!important;
}
.iot12-utility-faq .iot62-faq-answer p,
.iot12-utility-faq .iot62-faq-section-preamble p,
.iot12-utility-faq .iot62-faq-intro p,
.iot12-utility-faq .iot62-faq-section-tail p,
.iot12-utility-faq .iot62-faq-answer li,
.iot12-utility-faq .iot62-faq-section-preamble li,
.iot12-utility-faq .iot62-faq-section-tail li{
 font:400 18px/1.72 var(--iot-serif)!important;
 letter-spacing:0!important;
 text-transform:none!important;
 color:#272522!important;
}
.iot12-utility-faq .iot62-faq-answer p,
.iot12-utility-faq .iot62-faq-section-preamble p,
.iot12-utility-faq .iot62-faq-intro p,
.iot12-utility-faq .iot62-faq-section-tail p{
 margin:0 0 16px!important;
}
.iot12-utility-faq .iot62-faq-answer p:last-child,
.iot12-utility-faq .iot62-faq-section-preamble p:last-child,
.iot12-utility-faq .iot62-faq-intro p:last-child,
.iot12-utility-faq .iot62-faq-section-tail p:last-child{margin-bottom:0!important}
.iot12-utility-faq .iot62-faq-answer ul,
.iot12-utility-faq .iot62-faq-answer ol,
.iot12-utility-faq .iot62-faq-section-preamble ul,
.iot12-utility-faq .iot62-faq-section-preamble ol{
 margin:18px 0 18px 1.25em!important;
 padding:0!important;
}
.iot12-utility-faq .iot62-faq-answer li,
.iot12-utility-faq .iot62-faq-section-preamble li{margin:7px 0!important}
.iot12-utility-faq .iot62-faq-document a{
 color:var(--iot-ink)!important;
 text-decoration:none!important;
 border-bottom:1px solid rgba(17,19,21,.52)!important;
 padding-bottom:2px;
}

/* Preserve the existing WordPress media item but make it act as an editorial
   figure instead of a full-width legacy webshop block. */
.iot12-utility-faq .iot62-faq-media{
 width:min(100%,560px);
 margin:38px 0 52px 0;
}
.iot12-utility-faq .iot62-faq-media img{
 display:block;
 width:100%!important;
 max-width:100%!important;
 height:auto!important;
 margin:0!important;
}
.iot12-utility-faq .iot62-faq-media figcaption{
 margin-top:10px;
 font:10px/1.45 var(--iot-mono)!important;
 letter-spacing:.07em;
 text-transform:uppercase;
 color:#696661!important;
}

/* Defensive reset for any residual legacy WPBakery wrappers produced by a
   shortcode/plugin filter. The Core renderer normally removes these already. */
.iot12-utility-faq .vc_row,
.iot12-utility-faq .vc_row_inner,
.iot12-utility-faq .vc_column_container,
.iot12-utility-faq .vc_column-inner,
.iot12-utility-faq .wpb_wrapper,
.iot12-utility-faq .wpb_content_element{
 width:100%!important;
 max-width:none!important;
 min-height:0!important;
 margin-left:0!important;
 margin-right:0!important;
 padding-left:0!important;
 padding-right:0!important;
 float:none!important;
 background:transparent!important;
}
.iot12-utility-faq .wpb_content_element{margin-bottom:0!important}

@media(max-width:760px){
 .iot12-utility-faq .iot12-utility-body{padding-top:54px}
 .iot12-utility-faq .iot62-faq-intro,
 .iot12-utility-faq .iot62-faq-section-preamble,
 .iot12-utility-faq .iot62-faq-items,
 .iot12-utility-faq .iot62-faq-section-tail,
 .iot12-utility-faq .iot62-faq-media{margin-left:0}
 .iot12-utility-faq .iot62-faq-section{padding-top:54px;padding-bottom:64px}
 .iot12-utility-faq .iot62-faq-section-title{font-size:38px!important;margin-bottom:34px!important}
 .iot12-utility-faq .iot62-faq-question{font-size:22px!important}
 .iot12-utility-faq .iot62-faq-answer p,
 .iot12-utility-faq .iot62-faq-section-preamble p,
 .iot12-utility-faq .iot62-faq-intro p,
 .iot12-utility-faq .iot62-faq-section-tail p,
 .iot12-utility-faq .iot62-faq-answer li{font-size:17px!important;line-height:1.68!important}
 .iot12-utility-faq .iot62-faq-media{width:100%;max-width:520px;margin-top:28px;margin-bottom:38px}
}



/* =========================================================
   V0.62.3 — direct clean FAQ structure
   The current WordPress FAQ body already contains a valid .iot-faq wrapper.
   Keep that DOM intact and style it directly so every chapter remains inside
   one coherent centred editorial column.
   ========================================================= */
.iot12-utility-faq .iot62-faq-direct{
 width:100%;
 max-width:100%;
 margin:0;
 padding:0;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq{
 width:100%;
 max-width:860px;
 margin:0 auto;
 padding:0 24px clamp(78px,8vw,118px);
 color:var(--iot-ink);
 font-family:var(--iot-serif)!important;
 font-size:18px;
 line-height:1.68;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq *{box-sizing:border-box}
.iot12-utility-faq .iot62-faq-direct .iot-faq p,
.iot12-utility-faq .iot62-faq-direct .iot-faq li,
.iot12-utility-faq .iot62-faq-direct .iot-faq a,
.iot12-utility-faq .iot62-faq-direct .iot-faq h2,
.iot12-utility-faq .iot62-faq-direct .iot-faq h3{
 font-family:var(--iot-serif)!important;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-intro{
 max-width:780px;
 margin:0 0 clamp(46px,5vw,68px);
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-lead{
 margin:0 0 18px!important;
 font:400 clamp(23px,2.15vw,30px)/1.36 var(--iot-serif)!important;
 letter-spacing:-.02em!important;
 color:var(--iot-ink)!important;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-intro p:not(.iot-faq-lead){
 max-width:700px;
 margin:0!important;
 font:400 18px/1.68 var(--iot-serif)!important;
 color:#2a2825!important;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-nav{
 display:flex;
 flex-wrap:wrap;
 gap:8px 20px;
 margin:0 0 clamp(58px,6vw,82px);
 padding:17px 0 18px;
 border-top:1px solid rgba(17,19,21,.16);
 border-bottom:1px solid rgba(17,19,21,.16);
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-nav a{
 margin:0!important;
 padding:0 0 2px!important;
 border:0!important;
 border-bottom:1px solid rgba(17,19,21,.42)!important;
 font:400 15px/1.5 var(--iot-serif)!important;
 color:var(--iot-ink)!important;
 text-decoration:none!important;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-section{
 margin:0;
 padding:0 0 clamp(70px,7vw,96px);
 border:0;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-section + .iot-faq-section{
 padding-top:clamp(62px,6.5vw,88px);
 border-top:1px solid rgba(17,19,21,.15);
}
.iot12-utility-faq .iot62-faq-direct .iot-faq h2{
 max-width:780px;
 margin:0 0 clamp(34px,4vw,48px)!important;
 padding:0!important;
 border:0!important;
 font:400 clamp(34px,3.5vw,48px)/1.03 var(--iot-serif)!important;
 letter-spacing:-.038em!important;
 text-transform:none!important;
 color:var(--iot-ink)!important;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-item,
.iot12-utility-faq .iot62-faq-direct .iot-faq-version{
 max-width:720px;
 margin:0 0 34px;
 padding:0 0 32px;
 border-bottom:1px solid rgba(17,19,21,.10);
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-item:last-child,
.iot12-utility-faq .iot62-faq-direct .iot-faq-version:last-child{
 margin-bottom:0;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq h3{
 margin:0 0 10px!important;
 padding:0!important;
 border:0!important;
 font:600 clamp(20px,1.8vw,24px)/1.28 var(--iot-serif)!important;
 letter-spacing:-.018em!important;
 text-transform:none!important;
 color:var(--iot-ink)!important;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq p,
.iot12-utility-faq .iot62-faq-direct .iot-faq li{
 font:400 18px/1.68 var(--iot-serif)!important;
 letter-spacing:0!important;
 text-transform:none!important;
 color:#2a2825!important;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq p{
 margin:0 0 14px!important;
 padding:0!important;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq p:last-child{margin-bottom:0!important}
.iot12-utility-faq .iot62-faq-direct .iot-faq ul,
.iot12-utility-faq .iot62-faq-direct .iot-faq ol{
 margin:14px 0 18px 1.2em!important;
 padding:0!important;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq li{margin:6px 0!important;padding-left:3px}
.iot12-utility-faq .iot62-faq-direct .iot-faq a{
 color:var(--iot-ink)!important;
 text-decoration:none!important;
 border-bottom:1px solid rgba(17,19,21,.48)!important;
 padding-bottom:2px;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-image{
 width:min(100%,620px);
 margin:30px 0 46px;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-image .iot62-faq-media,
.iot12-utility-faq .iot62-faq-direct .iot-faq-image figure{
 width:100%;
 margin:0;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-image img,
.iot12-utility-faq .iot62-faq-direct .iot-faq img{
 display:block;
 width:100%!important;
 max-width:100%!important;
 height:auto!important;
 margin:0!important;
}
.iot12-utility-faq .iot62-faq-direct .iot-faq-cta{margin-top:24px!important}
.iot12-utility-faq .iot62-faq-direct .iot-faq-final{max-width:720px}
.iot12-utility-faq .iot62-faq-direct .iot-faq-final h2{font-size:clamp(34px,3.5vw,48px)!important}

@media(max-width:760px){
 .iot12-utility-faq .iot62-faq-direct .iot-faq{padding-left:0;padding-right:0;font-size:17px}
 .iot12-utility-faq .iot62-faq-direct .iot-faq-lead{font-size:23px!important}
 .iot12-utility-faq .iot62-faq-direct .iot-faq-intro p:not(.iot-faq-lead),
 .iot12-utility-faq .iot62-faq-direct .iot-faq p,
 .iot12-utility-faq .iot62-faq-direct .iot-faq li{font-size:17px!important;line-height:1.66!important}
 .iot12-utility-faq .iot62-faq-direct .iot-faq h2{font-size:34px!important;margin-bottom:30px!important}
 .iot12-utility-faq .iot62-faq-direct .iot-faq h3{font-size:20px!important}
 .iot12-utility-faq .iot62-faq-direct .iot-faq-item,
 .iot12-utility-faq .iot62-faq-direct .iot-faq-version{margin-bottom:29px;padding-bottom:28px}
 .iot12-utility-faq .iot62-faq-direct .iot-faq-section{padding-bottom:58px}
 .iot12-utility-faq .iot62-faq-direct .iot-faq-section + .iot-faq-section{padding-top:52px}
 .iot12-utility-faq .iot62-faq-direct .iot-faq-nav{margin-bottom:50px}
 .iot12-utility-faq .iot62-faq-direct .iot-faq-image{width:100%;max-width:560px;margin:26px 0 38px}
}


/* =========================================================
   V0.64 — stable FAQ release
   Consolidates the clean FAQ structure/rendering fixes from 0.62.3.
   FAQ typography/layout remains theme-owned; editor style blocks are ignored
   by the Core renderer at request time.
   ========================================================= */


/* ==========================================================================
   V0.65 — existing-page-safe typography + customer page unification
   --------------------------------------------------------------------------
   This release deliberately does not create, rename or upsert WordPress pages
   or menu items. It styles the existing page records identified in the V0.65
   database audit and gives older plain/WPBakery content a consistent editorial
   type system without changing stored content or SEO metadata.
   ========================================================================== */

/* ---------- Existing editorial pages: Process / Journal / Exhibitions / Featured ---------- */
body.iot65-editorial-page,
body.iot65-editorial-page #page_wrapper,
body.iot65-editorial-page .site-content,
body.iot65-editorial-page .content-area,
body.iot65-editorial-page .iot65-page-canvas{
  background:var(--iot-paper)!important;
}
body.iot65-editorial-page .iot65-page-canvas{
  width:100%;
  max-width:none!important;
  margin:0!important;
  padding:78px 0 0!important;
  color:var(--iot-ink)!important;
}
body.iot65-editorial-page .iot65-page-canvas p,
body.iot65-editorial-page .iot65-page-canvas li,
body.iot65-editorial-page .iot65-page-canvas blockquote,
body.iot65-editorial-page .iot65-page-canvas figcaption,
body.iot65-editorial-page .iot65-page-canvas td{
  font-family:var(--iot-serif)!important;
}
body.iot65-editorial-page .iot65-page-canvas h1,
body.iot65-editorial-page .iot65-page-canvas h2,
body.iot65-editorial-page .iot65-page-canvas h3,
body.iot65-editorial-page .iot65-page-canvas h4,
body.iot65-editorial-page .iot65-page-canvas h5,
body.iot65-editorial-page .iot65-page-canvas h6{
  font-family:var(--iot-serif)!important;
  text-transform:none!important;
}
body.iot65-editorial-page .iot65-page-canvas .iot12-micro,
body.iot65-editorial-page .iot65-page-canvas .iot12-type,
body.iot65-editorial-page .iot65-page-canvas .iot12-btn,
body.iot65-editorial-page .iot65-page-canvas button,
body.iot65-editorial-page .iot65-page-canvas input,
body.iot65-editorial-page .iot65-page-canvas select,
body.iot65-editorial-page .iot65-page-canvas textarea{
  font-family:var(--iot-sans)!important;
}
/* Plain HTML on the existing Exhibitions page needs the same H1 treatment as
   shortcode-generated chapter pages. Component-specific sizes remain intact. */
body.iot65-page-exhibitions .iot12-content > h1,
body.iot65-page-exhibitions .iot12-aligned-content > h1{
  font:400 clamp(50px,7vw,104px)/.94 var(--iot-serif)!important;
  letter-spacing:-.05em!important;
  margin:0!important;
  color:var(--iot-ink)!important;
}

/* ---------- Utility/legal/customer information pages ---------- */
body.iot12-utility .iot12-utility-content,
body.iot12-utility .iot12-utility-content p,
body.iot12-utility .iot12-utility-content li,
body.iot12-utility .iot12-utility-content blockquote,
body.iot12-utility .iot12-utility-content td,
body.iot12-utility .iot12-utility-content strong,
body.iot12-utility .iot12-utility-content em{
  font-family:var(--iot-serif)!important;
  text-transform:none!important;
}
body.iot12-utility .iot12-utility-content h1,
body.iot12-utility .iot12-utility-content h2,
body.iot12-utility .iot12-utility-content h3,
body.iot12-utility .iot12-utility-content h4,
body.iot12-utility .iot12-utility-content h5,
body.iot12-utility .iot12-utility-content h6{
  font-family:var(--iot-serif)!important;
  text-transform:none!important;
  letter-spacing:-.02em!important;
}
body.iot12-utility .iot12-utility-content p,
body.iot12-utility .iot12-utility-content li{
  font-size:18px!important;
  line-height:1.68!important;
  color:#292724!important;
}
body.iot12-utility .iot12-utility-content a{
  font-family:inherit!important;
}
/* Terms renderer */
body.iot65-page-terms .iot12-terms-document{
  max-width:900px;
  margin:0 auto;
}
body.iot65-page-terms .iot12-terms-section{
  padding:40px 0 44px;
  border-top:1px solid rgba(17,19,21,.14);
}
body.iot65-page-terms .iot12-terms-section:first-child{border-top:0;padding-top:0}
body.iot65-page-terms .iot12-terms-section h2{
  margin:0 0 22px!important;
  font:500 clamp(24px,2.2vw,32px)/1.18 var(--iot-serif)!important;
  color:var(--iot-ink)!important;
}
body.iot65-page-terms .iot12-terms-section p,
body.iot65-page-terms .iot12-terms-section li{
  font:400 17px/1.72 var(--iot-serif)!important;
}
body.iot65-page-terms .iot12-terms-section ol,
body.iot65-page-terms .iot12-terms-section ul{margin-top:0!important}

/* Return policy renderer */
body.iot65-page-return-policy .iot12-return-document{
  max-width:860px;
  margin:0 auto;
}
body.iot65-page-return-policy .iot12-return-intro{
  margin:0 0 52px;
}
body.iot65-page-return-policy .iot12-return-section{
  padding:42px 0;
  border-top:1px solid rgba(17,19,21,.14);
}
body.iot65-page-return-policy .iot12-return-section h2{
  margin:0 0 18px!important;
  font:500 clamp(24px,2.2vw,32px)/1.18 var(--iot-serif)!important;
  color:var(--iot-ink)!important;
}
body.iot65-page-return-policy .iot12-return-document p{
  font:400 18px/1.7 var(--iot-serif)!important;
  margin:0 0 16px!important;
}
body.iot65-page-return-policy .iot12-return-document strong{
  font-family:var(--iot-serif)!important;
  font-weight:650!important;
}

/* ---------- Existing WooCommerce customer pages ---------- */
body.iot12-commerce.iot65-commerce-account,
body.iot12-commerce.iot65-commerce-cart,
body.iot12-commerce.iot65-commerce-checkout,
body.iot12-commerce.iot65-commerce-account #page_wrapper,
body.iot12-commerce.iot65-commerce-cart #page_wrapper,
body.iot12-commerce.iot65-commerce-checkout #page_wrapper{
  background:var(--iot-paper)!important;
  color:var(--iot-ink)!important;
}
.iot65-customer-page{
  padding-top:78px;
  background:var(--iot-paper)!important;
  color:var(--iot-ink)!important;
  min-height:70vh;
}
.iot65-customer-head{
  padding:clamp(62px,7vw,96px) 5vw clamp(44px,5vw,72px);
  border-bottom:1px solid rgba(17,19,21,.14);
  background:var(--iot-paper);
}
.iot65-customer-head-inner{
  width:min(1180px,100%);
  margin:0 auto;
}
.iot65-customer-head h1{
  margin:10px 0 20px!important;
  font:400 clamp(52px,7vw,102px)/.92 var(--iot-serif)!important;
  letter-spacing:-.055em!important;
  text-transform:none!important;
  color:var(--iot-ink)!important;
}
.iot65-customer-head p{
  max-width:760px;
  margin:0!important;
  font:400 clamp(19px,1.8vw,25px)/1.48 var(--iot-serif)!important;
  color:#36332f!important;
}
.iot65-customer-body{
  padding:clamp(54px,6vw,88px) 5vw clamp(86px,9vw,132px);
  background:var(--iot-paper);
}
.iot65-customer-content{
  width:min(1180px,100%);
  max-width:1180px!important;
  margin:0 auto!important;
  padding:0!important;
  font-family:var(--iot-serif)!important;
  color:var(--iot-ink)!important;
}
.iot65-customer-content .woocommerce,
.iot65-customer-content .woocommerce p,
.iot65-customer-content .woocommerce li,
.iot65-customer-content .woocommerce td,
.iot65-customer-content .woocommerce address,
.iot65-customer-content .woocommerce .woocommerce-MyAccount-content{
  font-family:var(--iot-serif)!important;
}
.iot65-customer-content .woocommerce h1,
.iot65-customer-content .woocommerce h2,
.iot65-customer-content .woocommerce h3,
.iot65-customer-content .woocommerce h4{
  font-family:var(--iot-serif)!important;
  text-transform:none!important;
  letter-spacing:-.02em!important;
  color:var(--iot-ink)!important;
}
.iot65-customer-content .woocommerce p,
.iot65-customer-content .woocommerce li,
.iot65-customer-content .woocommerce address{
  font-size:17px!important;
  line-height:1.68!important;
  color:#292724!important;
}
/* Controls stay in the utility/sans language. */
.iot65-customer-content .woocommerce button,
.iot65-customer-content .woocommerce .button,
.iot65-customer-content .woocommerce input,
.iot65-customer-content .woocommerce select,
.iot65-customer-content .woocommerce textarea,
.iot65-customer-content .woocommerce label,
.iot65-customer-content .woocommerce th,
.iot65-customer-content .woocommerce .woocommerce-MyAccount-navigation{
  font-family:var(--iot-sans)!important;
}

/* My Account: turn Shopkeeper's default account screen into a calm two-column
   customer area while preserving every WooCommerce endpoint and form action. */
body.iot65-commerce-account .woocommerce-MyAccount-navigation{
  float:none!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
}
body.iot65-commerce-account .woocommerce-MyAccount-navigation ul{
  display:flex!important;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 42px!important;
  padding:0!important;
  list-style:none!important;
}
body.iot65-commerce-account .woocommerce-MyAccount-navigation li{
  margin:0!important;
  padding:0!important;
  border:0!important;
}
body.iot65-commerce-account .woocommerce-MyAccount-navigation a{
  display:inline-flex!important;
  align-items:center;
  min-height:38px;
  padding:9px 14px!important;
  border:1px solid rgba(17,19,21,.22)!important;
  border-radius:999px;
  background:transparent!important;
  color:var(--iot-ink)!important;
  font:600 12px/1 var(--iot-sans)!important;
  text-decoration:none!important;
  text-transform:none!important;
}
body.iot65-commerce-account .woocommerce-MyAccount-navigation .is-active a,
body.iot65-commerce-account .woocommerce-MyAccount-navigation a:hover{
  background:var(--iot-ink)!important;
  color:var(--iot-white)!important;
  border-color:var(--iot-ink)!important;
}
body.iot65-commerce-account .woocommerce-MyAccount-content{
  float:none!important;
  width:100%!important;
  max-width:900px!important;
  margin:0!important;
  padding:0!important;
}
body.iot65-commerce-account .woocommerce-MyAccount-content > p:first-child{
  font-size:20px!important;
  line-height:1.6!important;
}
body.iot65-commerce-account .woocommerce-MyAccount-content table,
body.iot65-commerce-cart table.shop_table,
body.iot65-commerce-checkout table.shop_table{
  border-collapse:collapse!important;
  border:0!important;
  background:transparent!important;
}
body.iot65-commerce-account .woocommerce-MyAccount-content table th,
body.iot65-commerce-account .woocommerce-MyAccount-content table td,
body.iot65-commerce-cart table.shop_table th,
body.iot65-commerce-cart table.shop_table td,
body.iot65-commerce-checkout table.shop_table th,
body.iot65-commerce-checkout table.shop_table td{
  border:0!important;
  border-bottom:1px solid rgba(17,19,21,.14)!important;
}

/* WooCommerce shop/product text normalization. Keep layout/pricing components
   intact; only prevent parent-theme fonts from leaking into the site system. */
body.iot12-commerce.woocommerce-shop .woocommerce-loop-product__title,
body.iot12-commerce.woocommerce-shop .product-title,
body.iot12-commerce.single-product .product_title,
body.iot12-commerce.single-product .woocommerce-Tabs-panel h2,
body.iot12-commerce.single-product .woocommerce-product-details__short-description,
body.iot12-commerce.single-product .woocommerce-product-details__short-description p,
body.iot12-commerce.single-product .woocommerce-Tabs-panel p,
body.iot12-commerce.single-product .woocommerce-Tabs-panel li{
  font-family:var(--iot-serif)!important;
}
body.iot12-commerce.woocommerce-shop .woocommerce-loop-product__title,
body.iot12-commerce.single-product .product_title,
body.iot12-commerce.single-product .woocommerce-Tabs-panel h2{
  text-transform:none!important;
}

@media(max-width:760px){
  body.iot65-editorial-page .iot65-page-canvas{padding-top:70px!important}
  .iot65-customer-page{padding-top:70px}
  .iot65-customer-head{padding:48px 20px 38px}
  .iot65-customer-head h1{font-size:52px!important}
  .iot65-customer-head p{font-size:18px!important}
  .iot65-customer-body{padding:42px 20px 76px}
  body.iot65-commerce-account .woocommerce-MyAccount-navigation ul{margin-bottom:30px!important}
  body.iot12-utility .iot12-utility-content p,
  body.iot12-utility .iot12-utility-content li{font-size:17px!important}
  body.iot65-page-return-policy .iot12-return-document p,
  body.iot65-page-terms .iot12-terms-section p,
  body.iot65-page-terms .iot12-terms-section li{font-size:17px!important}
}

/* ==========================================================================
   V0.67 — single-block native Imaginarium 404 page
   --------------------------------------------------------------------------
   Keeps the standard Imaginarium header/menu and footer, but places the full
   404 message and recovery actions in one continuous editorial block.
   ========================================================================== */
body.error404,
body.iot67-404-page-body,
body.iot67-404-page-body #page_wrapper{
  background:var(--iot-paper)!important;
  color:var(--iot-ink)!important;
}
.iot67-404-page{
  min-height:0;
  background:var(--iot-paper);
}
.iot67-404-single{
  padding:clamp(75px,8vw,125px) 5vw clamp(105px,11vw,175px);
}
.iot67-404-inner{
  max-width:1180px;
  margin:0 auto;
}
.iot67-404-inner h1{
  max-width:1100px;
  margin:15px 0 30px;
  font:400 clamp(62px,8.5vw,136px)/.88 var(--iot-serif);
  letter-spacing:-.06em;
  color:var(--iot-ink);
}
.iot67-404-inner .iot12-utility-lead{
  max-width:850px;
  margin:0;
  font:600 clamp(21px,2.2vw,32px)/1.45 var(--iot-serif);
}
.iot67-404-copy{
  max-width:760px;
  margin:30px 0 0!important;
  font:400 18px/1.7 var(--iot-serif)!important;
  color:#292724!important;
}
.iot67-404-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}
.iot67-404-actions .iot12-btn{
  min-height:46px;
  padding:13px 20px!important;
  font-family:var(--iot-sans)!important;
  font-size:12px!important;
  line-height:1!important;
  letter-spacing:.02em!important;
  text-transform:none!important;
  text-decoration:none!important;
}
.iot67-404-actions .iot12-btn:not(.darkbtn){
  background:transparent!important;
  color:var(--iot-ink)!important;
  border-color:rgba(17,19,21,.45)!important;
}
@media(max-width:650px){
  .iot67-404-single{
    padding-left:24px;
    padding-right:24px;
    padding-bottom:100px;
  }
  .iot67-404-inner h1{font-size:57px!important}
  .iot67-404-copy{font-size:17px!important}
  .iot67-404-actions{align-items:stretch;flex-direction:column}
  .iot67-404-actions .iot12-btn{width:100%;justify-content:center}
}
