/*
Theme Name: Müller & Sohn — Label & Labor
Theme URI: https://muellerundsohn.eu/
Author: Müller & Sohn
Description: Eigenständiges WordPress-Theme für Müller & Sohn als künstlerisches Labor und Label. Mit Projekten, Werk/Werkgruppen, Labor, WooCommerce-Integration und vorbereiteter Galerie-Struktur.
Version: 1.0.1
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: mueller-sohn-label
License: GNU General Public License v2 or later
*/

:root {
  --ms-bg: #f4f4f1;
  --ms-paper: #ffffff;
  --ms-text: #161616;
  --ms-muted: #6d6d68;
  --ms-line: #cfcfca;
  --ms-soft: #e8e8e3;
  --ms-red: #d51030;
  --ms-max: 1540px;
  --ms-copy: 780px;
  --ms-font: "Corporate S W07 Regular", Helvetica, Arial, sans-serif;
  --ms-font-light: "Corporate S W07 Light", "Corporate S W07 Regular", Helvetica, Arial, sans-serif;
  --ms-font-medium: "Corporate S W07 Medium", "Corporate S W07 Regular", Helvetica, Arial, sans-serif;
  --ms-font-demi: "Corporate S W07 Demi", "Corporate S W07 Medium", Helvetica, Arial, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ms-bg);color:var(--ms-text);font-family:var(--ms-font);font-size:17px;line-height:1.56;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{text-decoration:none}
img{display:block;max-width:100%;height:auto}
button,input,textarea,select{font:inherit}
.ms-wrap{width:min(calc(100% - 64px),var(--ms-max));margin-inline:auto}
.ms-copy{width:min(100%,var(--ms-copy))}
.ms-kicker,.ms-meta,.ms-section-label,.ms-work-data dt{font-size:12px;line-height:1.35;letter-spacing:.09em;text-transform:uppercase;color:var(--ms-muted)}
.ms-accent{color:var(--ms-red)}

.site-header{padding:20px 0 18px;background:var(--ms-bg);border-bottom:1px solid var(--ms-line);position:relative;z-index:5}
.site-header__row{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;min-width:max-content}
.brand__signet{width:52px;height:52px;object-fit:contain}
.brand__name{font-family:var(--ms-font-medium);font-size:20px;line-height:1.02;letter-spacing:.025em}
.brand__descriptor{display:block;margin-top:4px;font-size:10px;line-height:1.2;letter-spacing:.12em;text-transform:uppercase;color:var(--ms-muted)}
.site-nav>ul{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 23px;margin:0;padding:0;list-style:none}
.site-nav li{position:relative;list-style:none}
.site-nav a{font-size:12px;letter-spacing:.07em;text-transform:uppercase;text-decoration:none}
.site-nav .menu-item-shop>a,.site-nav a[href*="/shop"]{color:var(--ms-red)}
.site-nav a:hover,.site-nav .current-menu-item>a,.site-nav .current_page_item>a{text-decoration:underline;text-underline-offset:.35em}
.site-nav .sub-menu{display:none;position:absolute;top:100%;left:-12px;z-index:50;min-width:220px;margin:0;padding:10px 0 8px;list-style:none;background:var(--ms-bg);border-top:1px solid var(--ms-line);box-shadow:0 12px 22px rgba(0,0,0,.06)}
.site-nav .sub-menu li{width:100%}
.site-nav .sub-menu a{display:block;padding:7px 12px;white-space:nowrap;font-size:11px}
.site-nav li:hover>.sub-menu,.site-nav li:focus-within>.sub-menu,.site-nav li.submenu-open>.sub-menu{display:block}
.submenu-toggle{display:none;appearance:none;border:0;background:transparent;color:inherit;padding:0;width:28px;height:28px;align-items:center;justify-content:center;cursor:pointer}
.submenu-toggle::before{content:"+";font-size:17px;line-height:1;font-family:Arial,sans-serif;font-weight:300}
.menu-item-has-children.submenu-open>.submenu-toggle::before{content:"−"}
.site-main{min-height:62vh}

.page-head{padding:58px 0 34px;border-bottom:1px solid var(--ms-line)}
.page-head__grid{display:grid;grid-template-columns:170px minmax(0,1fr);gap:28px;align-items:end}
.page-head h1{margin:0;font-family:var(--ms-font-light);font-weight:400;font-size:clamp(40px,5vw,76px);line-height:1;letter-spacing:-.02em}
.page-head__sub{max-width:760px;margin-top:18px;color:var(--ms-muted);font-size:17px}
.entry-content{padding:34px 0 80px}
.entry-content>*{max-width:var(--ms-copy);margin-left:0}
.entry-content>.alignwide{max-width:1200px}
.entry-content>.alignfull{width:100vw;max-width:none;margin-left:calc(50% - 50vw)}
.entry-content h2,.entry-content h3,.entry-content h4{font-family:var(--ms-font-light);font-weight:400;line-height:1.15}
.entry-content h2{margin-top:2.2em;font-size:clamp(28px,3.5vw,46px)}
.entry-content h3{margin-top:2em;font-size:25px}
.entry-content p{margin-block:0 1.25em}
.entry-content blockquote{margin:2.5em 0;padding-left:24px;border-left:3px solid var(--ms-red);font-family:var(--ms-font-light);font-size:clamp(23px,2.8vw,36px);line-height:1.25}

.home-hero{padding:34px 0 76px;border-bottom:1px solid var(--ms-line)}
.home-hero__image{width:100%;height:min(69vh,850px);object-fit:cover;background:var(--ms-soft)}
.home-hero__caption{display:grid;grid-template-columns:170px minmax(0,1fr) auto;gap:28px;margin-top:14px;align-items:baseline}
.home-hero__caption a{text-decoration:none}
.home-hero__title{font-family:var(--ms-font-medium);font-size:15px}
.home-intro{padding:70px 0 88px}
.home-intro__grid{display:grid;grid-template-columns:170px minmax(0,1fr);gap:28px}
.home-intro .entry-content{padding:0;max-width:1000px;font-family:var(--ms-font-light);font-size:clamp(24px,2.7vw,40px);line-height:1.27}
.home-intro .entry-content>*{max-width:1000px}
.home-section{padding:34px 0 86px;border-top:1px solid var(--ms-line)}
.home-section__head{display:grid;grid-template-columns:170px minmax(0,1fr) auto;gap:28px;align-items:baseline;margin-bottom:34px}
.home-section__head h2{margin:0;font-size:13px;font-weight:400;letter-spacing:.08em;text-transform:uppercase}
.home-section__head a{font-size:12px;letter-spacing:.07em;text-transform:uppercase}

.ms-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:50px 28px}
.ms-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ms-card{min-width:0}
.ms-card a{text-decoration:none}
.ms-card__image{aspect-ratio:4/3;background:var(--ms-soft);overflow:hidden;display:flex;align-items:center;justify-content:center}
.ms-card__image img{width:100%;height:100%;object-fit:cover}
.ms-card--work .ms-card__image{aspect-ratio:1/1;background:transparent}
.ms-card--work .ms-card__image img{object-fit:contain;object-position:left bottom}
.ms-card__body{border-top:1px solid var(--ms-line);margin-top:13px;padding-top:12px}
.ms-card__title{margin:0;font-family:var(--ms-font-medium);font-size:18px;font-weight:400;line-height:1.25}
.ms-card__meta{margin-top:4px;font-size:13px;color:var(--ms-muted)}
.ms-card__desc{max-width:540px;margin:10px 0 0;color:#3f3f3a;font-size:15px}
.ms-card__mark{display:inline-block;margin-bottom:7px;color:var(--ms-red);font-size:12px;letter-spacing:.08em;text-transform:uppercase}

.archive-section{padding:38px 0 100px}
.archive-filter{display:flex;flex-wrap:wrap;gap:9px 20px;margin:0 0 42px;padding:0;list-style:none}
.archive-filter a{font-size:12px;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;color:var(--ms-muted)}
.archive-filter a:hover{color:var(--ms-text);text-decoration:underline}

.single-work,.single-project,.single-lab{padding:38px 0 100px}
.single-work__visual,.single-project__visual{min-height:48vh;display:flex;align-items:flex-start;justify-content:flex-start}
.single-work__visual img{max-height:78vh;width:auto;height:auto;object-fit:contain}
.single-project__visual img{width:100%;max-height:76vh;object-fit:cover}
.single-work__layout,.single-project__layout,.single-lab__layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:64px;border-top:1px solid var(--ms-line);margin-top:34px;padding-top:28px}
.single-work h1,.single-project h1,.single-lab h1{margin:0 0 24px;font-family:var(--ms-font-light);font-weight:400;font-size:clamp(38px,5vw,70px);line-height:1.02;letter-spacing:-.02em}
.ms-work-data{margin:0;display:grid;grid-template-columns:92px 1fr;gap:5px 15px;font-size:14px}
.ms-work-data dt,.ms-work-data dd{margin:0}
.ms-work-data a{text-decoration:none}
.shop-cta{display:inline-flex;margin-top:22px;padding:10px 14px;border:1px solid var(--ms-red);color:var(--ms-red);font-size:12px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.shop-cta:hover{background:var(--ms-red);color:#fff}
.related-strip{margin-top:76px;padding-top:30px;border-top:1px solid var(--ms-line)}

.project-works{margin-top:76px;border-top:1px solid var(--ms-line);padding-top:34px}
.lab-list{border-top:1px solid var(--ms-line)}
.lab-row{display:grid;grid-template-columns:170px minmax(0,1fr) 220px;gap:28px;padding:20px 0;border-bottom:1px solid var(--ms-line);align-items:baseline}
.lab-row h2{margin:0;font-family:var(--ms-font-light);font-weight:400;font-size:clamp(23px,2.4vw,35px)}
.lab-row h2 a{text-decoration:none}
.lab-row__type{font-size:13px;color:var(--ms-muted)}

.news-list{border-top:1px solid var(--ms-line)}
.news-row{display:grid;grid-template-columns:170px minmax(0,1fr) auto;gap:28px;padding:19px 0;border-bottom:1px solid var(--ms-line);align-items:baseline}
.news-row__date{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ms-muted)}
.news-row h2{margin:0;font-family:var(--ms-font-light);font-size:clamp(22px,2.3vw,34px);font-weight:400}
.news-row h2 a{text-decoration:none}
.news-row__more{font-size:12px;text-transform:uppercase;letter-spacing:.06em}

/* WooCommerce: bewusst wie Teil des Labels, nicht wie ein Fremd-Shop. */
.woocommerce.ms-shop,.ms-shop{padding:40px 0 100px}
.woocommerce .woocommerce-breadcrumb{font-size:12px;color:var(--ms-muted);margin:0 0 28px}
.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:50px 28px;margin:0!important;padding:0!important}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none!important}
.woocommerce ul.products li.product{float:none!important;width:auto!important;margin:0!important}
.woocommerce ul.products li.product a img{margin:0 0 14px!important;background:transparent}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--ms-font-medium);font-size:18px!important;font-weight:400;padding:10px 0 0!important;border-top:1px solid var(--ms-line)}
.woocommerce ul.products li.product .price{color:var(--ms-text)!important;font-size:14px!important}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit{background:transparent!important;border:1px solid var(--ms-text)!important;border-radius:0!important;color:var(--ms-text)!important;font-weight:400!important;font-size:12px!important;letter-spacing:.07em;text-transform:uppercase}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{background:var(--ms-text)!important;color:#fff!important}
.woocommerce div.product{padding:40px 0 90px}
.woocommerce div.product .product_title{font-family:var(--ms-font-light);font-weight:400;font-size:clamp(36px,4.5vw,64px)}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--ms-text)}
.woocommerce span.onsale{background:var(--ms-red)!important;border-radius:0!important;min-height:auto!important;line-height:1!important;padding:8px 10px!important}

.site-footer{border-top:1px solid var(--ms-line);padding:32px 0 48px;margin-top:20px;font-size:13px}
.site-footer__grid{display:grid;grid-template-columns:170px 1fr 1fr;gap:28px;align-items:start}
.site-footer__signet{width:58px;height:58px;object-fit:contain}
.site-footer strong{font-family:var(--ms-font-medium);font-weight:400;letter-spacing:.03em}
.site-footer nav ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:flex-end}
.site-footer a{text-decoration:none}
.site-footer__people{margin-top:8px;color:var(--ms-muted)}
.pagination,.nav-links{margin-top:52px;display:flex;flex-wrap:wrap;gap:10px 18px;font-size:13px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:960px){
  .ms-wrap{width:min(calc(100% - 38px),var(--ms-max))}
  .site-header__row{grid-template-columns:1fr}
  .site-nav>ul{justify-content:flex-start}
  .site-nav .menu-item-has-children{display:grid;grid-template-columns:auto 28px;align-items:center}
  .submenu-toggle{display:inline-flex}
  .site-nav .sub-menu{position:static;grid-column:1/-1;min-width:0;width:100%;margin:4px 0 5px 10px;padding:2px 0 2px 12px;border-top:0;border-left:1px solid var(--ms-line);box-shadow:none;background:transparent}
  .site-nav .sub-menu a{padding:5px 0;white-space:normal}
  .site-nav li:hover>.sub-menu,.site-nav li:focus-within>.sub-menu{display:none}
  .site-nav li.submenu-open>.sub-menu{display:block}
  .home-hero__caption,.home-section__head,.home-intro__grid,.page-head__grid{grid-template-columns:120px minmax(0,1fr)}
  .home-hero__caption>*:last-child,.home-section__head>*:last-child{grid-column:2}
  .ms-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .single-work__layout,.single-project__layout,.single-lab__layout{grid-template-columns:1fr;gap:30px}
  .lab-row,.news-row{grid-template-columns:120px minmax(0,1fr)}
  .lab-row__type,.news-row__more{display:none}
  .woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  body{font-size:16px}
  .site-header{padding-top:17px}
  .brand__signet{width:46px;height:46px}
  .brand__name{font-size:18px}
  .home-hero{padding-bottom:54px}
  .home-hero__image{height:auto;max-height:70vh;object-fit:contain;object-position:left center}
  .home-hero__caption,.home-section__head,.home-intro__grid,.page-head__grid{grid-template-columns:1fr;gap:8px}
  .home-hero__caption>*:last-child,.home-section__head>*:last-child{grid-column:auto}
  .home-intro{padding:52px 0 64px}
  .home-section{padding-bottom:64px}
  .ms-grid,.ms-grid--2,.woocommerce ul.products{grid-template-columns:1fr!important;gap:42px}
  .single-work__visual,.single-project__visual{min-height:0}
  .ms-work-data{grid-template-columns:84px 1fr}
  .lab-row,.news-row{grid-template-columns:1fr;gap:5px}
  .site-footer__grid{grid-template-columns:1fr}
  .site-footer nav ul{justify-content:flex-start}
}
