/*
Theme Name: grafiti-mozaic
Author: Mozaik.one
Description: Galerie et boutique d’art urbain pour Mozaik.one.
Version: 1.1.1
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: grafiti-mozaic
*/

:root {
    --yellow:#ffb700;
    --ink:#161715;
    --paper:#f7f3e8;
    --muted:#bcbdb3;
    --surface:rgba(22,23,21,.8);
    --line:rgba(247,243,232,.22)
}

* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:30px
}
body {
    margin:0;
    background:var(--ink);
    color:var(--paper);
    font-family:"Barlow",Arial,sans-serif;
    line-height:1.6
}
a {
    color:inherit;
    text-underline-offset:5px
}
a:hover {
    color:var(--yellow)
}
button,input,textarea,select {
    font:inherit
}
img {
    max-width:100%;
    height:auto
}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible {
    outline:3px solid var(--paper);
    outline-offset:3px;
    box-shadow:0 0 0 6px var(--ink)
}
#contenu:focus {
    outline-offset:6px
}
.skip-link {
    position:absolute;
    top:-100px;
    left:20px;
    background:var(--paper);
    color:var(--ink);
    padding:12px;
    z-index:20
}
.skip-link:focus {
    position:fixed;
    top:50px;
    color:var(--ink)
}
.site-shell {
    width:min(1440px,calc(100% - 80px));
    margin:auto
}
.site-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    padding:28px 24px;
    background:var(--surface);
    border-bottom:1px solid var(--line)
}
.brand {
    font-weight:900;
    font-size:25px;
    letter-spacing:-1.5px;
    text-decoration:none;
    line-height:1
}
.brand span {
    color:var(--yellow)
}
.site-nav {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:30px;
    font-size:1rem;
    font-weight:700
}
.site-nav a {
    text-decoration:none;
    padding:8px 0
}
.site-nav a:hover,.site-nav a:focus-visible,.site-footer a:hover,.site-footer a:focus-visible {
    text-decoration:underline
}
.site-nav .cart-link {
    border:1px solid var(--muted);
    padding:9px 16px
}
.hero {
    min-height:750px;
    min-height:min(850px,calc(100svh - 105px));
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
    align-items:center;
    gap:50px;
    padding:70px 0 80px
}
.eyebrow {
    font-size:.875rem;
    text-transform:uppercase;
    letter-spacing:3px;
    font-weight:700;
    margin:0 0 24px
}
.eyebrow::before {
    content:"";
    display:inline-block;
    width:26px;
    height:3px;
    background:var(--yellow);
    vertical-align:middle;
    margin-right:12px
}
.hero h1 {
    font-family:"Barlow Condensed",Impact,sans-serif;
    font-size:clamp(4.5rem,9vw,10rem);
    line-height:1.02;
    text-transform:uppercase;
    letter-spacing:-.035em;
    font-weight:900;
    margin:0 0 32px
}
.hero h1 span {
    color:var(--yellow)
}
.hero-intro {
    max-width:400px;
    font-size:1.125rem;
    color:var(--paper);
    margin:0 0 30px
}
.actions {
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    align-items:center
}
.button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:32px;
    background:var(--yellow);
    color:var(--ink);
    border:1px solid var(--yellow);
    padding:14px 23px;
    text-decoration:none;
    font-weight:800;
    font-size:1rem;
    border-radius:0
}
.button:hover,.woocommerce a.button:hover,.woocommerce button.button:hover {
    background:var(--paper);
    color:var(--ink)
}
.button.secondary {
    background:var(--ink);
    border-color:var(--muted);
    color:var(--paper)
}
.button.secondary:hover {
    border-color:var(--yellow);
    color:var(--yellow)
}
.hero-visual {
    position:relative;
    min-height:460px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    border:1px solid var(--line);
    background:rgba(20,21,19,.8);
    transform:rotate(3deg);
    box-shadow:14px 14px 0 rgba(0,0,0,.28);
    overflow:hidden
}
.hero-visual.has-image {
    transform:rotate(3deg);
    padding:0
}
.hero-visual img {
    width:100%;
    height:500px;
    object-fit:cover;
    display:block
}
.hero-monogram {
    font-family:"Barlow Condensed",Impact,sans-serif;
    font-size:clamp(110px,13vw,200px);
    font-weight:900;
    letter-spacing:-.06em;
    line-height:.85;
    text-align:center;
    color:var(--paper);
    transform:rotate(-7deg);
    padding:30px
}
.hero-monogram span {
    color:var(--yellow);
    display:block
}
.visual-caption {
    font-size:11px;
    letter-spacing:5px;
    text-transform:uppercase;
    margin:20px
}
.section {
    padding:75px 40px;
    background:var(--surface);
    margin:0 0 30px
}
.section-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:35px
}
.section h2,.content-page h1 {
    font-family:"Barlow Condensed",Impact,sans-serif;
    font-size:clamp(2.375rem,5vw,4.375rem);
    text-transform:uppercase;
    letter-spacing:-1px;
    line-height:1.05;
    margin:0
}
.section-heading a {
    font-size:1rem;
    overflow-wrap:anywhere
}
.works-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px
}
.work {
    margin:0
}
.work a {
    display:block;
    text-decoration:none
}
.work img {
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
    display:block;
    transition:transform .3s
}
.work a:hover img {
    transform:translateY(-5px)
}
.work figcaption {
    font-size:13px;
    padding-top:14px
}
.work:nth-child(even) {
    padding-top:50px
}
.instagram-panel {
    display:grid;
    grid-template-columns:1.3fr 1fr;
    gap:50px;
    align-items:center
}
.instagram-panel p {
    color:var(--muted);
    max-width:440px
}
.project-section {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px;
    align-items:center
}
.project-section p {
    color:var(--muted);
    margin:0 0 26px
}
.project-section h2 span {
    color:var(--yellow)
}
.site-footer {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    flex-wrap:wrap;
    padding:35px 24px 45px;
    background:var(--surface);
    font-size:1rem
}
.site-footer nav {
    display:flex;
    gap:25px
}
.site-footer a {
    text-decoration:none
}
.content-page {
    background:var(--surface);
    padding:50px;
    margin:40px 0;
    min-height:50vh
}
.content-page h1 {
    margin-bottom:35px
}
.content-page h2,.content-page h3 {
    line-height:1.2
}
.content-page a {
    color:var(--yellow)
}
.content-page input,.content-page textarea,.content-page select {
    max-width:100%;
    padding:10px;
    color:var(--ink);
    background:var(--paper);
    border:1px solid #aaa
}
.content-page article+article {
    border-top:1px solid var(--line);
    margin-top:30px;
    padding-top:30px
}
.woocommerce ul.products li.product .price {
    color:var(--yellow)
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    color:var(--paper);
    font-size:18px
}
.woocommerce div.product p.price,.woocommerce div.product span.price {
    color:var(--yellow)
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    color:var(--ink)
}
.woocommerce .woocommerce-breadcrumb,.woocommerce .woocommerce-breadcrumb a,.woocommerce-result-count {
    color:var(--muted)
}
.woocommerce table.shop_table {
    border-color:var(--line)
}
.woocommerce-info,.woocommerce-message,.woocommerce-error {
    background:var(--paper);
    color:var(--ink)
}
.woocommerce-info a,.woocommerce-message a,.woocommerce-error a {
    color:var(--ink)
}
.content-page a.button,.content-page button.button {
    color:var(--ink)
}
.hero-copy {
    background:var(--surface);
    padding:32px;
    min-width:0
}
.hero h1,.section h2,.content-page h1 {
    overflow-wrap:anywhere
}
.project-section > div,.instagram-panel > div {
    min-width:0
}
.wc-block-components-button {
    border-radius:0
}
.wp-block-image img {
    height:auto
}
.screen-reader-text {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}

@media(min-width:1600px) {
    .site-shell {
    width:min(1440px,calc(100% - 140px))
}

}

@media(max-width:900px) {
    .site-shell {
    width:calc(100% - 40px)
}
.hero {
    gap:25px;
    min-height:auto;
    padding:70px 0
}
.hero-visual {
    min-height:360px
}
.hero-visual img {
    height:380px
}
.site-nav {
    gap:18px
}
.section {
    padding:45px 25px
}
.project-section {
    gap:35px
}
.hero h1 {
    font-size:clamp(3.5rem,8vw,6.875rem)
}

}

@media(max-width:600px) {
    .site-shell {
    width:calc(100% - 28px)
}
.site-header {
    flex-wrap:wrap;
    gap:22px;
    padding:22px 0
}
.site-nav {
    width:100%;
    justify-content:space-between;
    gap:10px;
    font-size:1rem
}
.site-nav .cart-link {
    padding:6px 10px
}
.hero {
    grid-template-columns:1fr;
    padding:45px 6px 55px;
    gap:45px
}
.hero h1 {
    font-size:clamp(3rem,16vw,6.25rem)
}
.hero-copy {
    padding:24px 18px
}
.hero-visual {
    margin:0 12px;
    min-height:300px
}
.hero-monogram {
    font-size:140px
}
.hero-visual img {
    height:350px
}
.hero-intro {
    font-size:1rem
}
.section {
    padding:35px 20px;
    margin-bottom:20px
}
.section-heading {
    align-items:start;
    flex-direction:column;
    gap:16px
}
.works-grid {
    grid-template-columns:1fr 1fr;
    gap:15px
}
.work:nth-child(3n+2) {
    padding-top:0
}
.work:nth-child(even) {
    padding-top:30px
}
.instagram-panel,.project-section {
    grid-template-columns:1fr;
    gap:20px
}
.site-footer {
    align-items:start;
    flex-direction:column;
    padding:25px 20px
}
.site-footer nav {
    flex-wrap:wrap;
    gap:18px
}
.content-page {
    padding:25px 20px;
    margin:25px 0
}
.eyebrow {
    font-size:.875rem;
    letter-spacing:2px
}
.button {
    padding:12px 18px;
    gap:20px
}

}

@media(prefers-reduced-motion:reduce) {
    html {
    scroll-behavior:auto
}
.work img {
    transition:none
}

}

