/*
Theme Name: Pacific Maker
Theme URI: https://pacificmaker.pf
Author: Pacific Maker
Description: Thème sur mesure pour Pacific Maker — mobilier en grès cérame façonné à la main. Style épuré, palette vert/blanc.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: pacific-maker
*/

:root{
  --pm-white:#FFFFFF;
  --pm-off-white:#F4F5F1;
  --pm-green-deep:#16301F;
  --pm-green:#2E5C3E;
  --pm-green-light:#A9C0AC;
  --pm-line: rgba(22,48,31,0.15);
  --pm-max: 1120px;
}

*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--pm-off-white);
  color:var(--pm-green-deep);
  font-family:'Inter', sans-serif;
  line-height:1.6;
  font-size:16px;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.container{max-width:var(--pm-max); margin:0 auto; padding:0 32px;}

h1,h2,h3,h4{
  font-family:'Space Grotesk', sans-serif;
  font-weight:600;
  line-height:1.15;
  margin:0 0 18px;
}
h1{font-size:clamp(34px,5vw,58px);}
h2{font-size:clamp(24px,3vw,34px);}
h3{font-size:20px;}
p{margin:0 0 16px; color:rgba(22,48,31,0.82);}

.mono{
  font-family:'IBM Plex Mono', monospace;
  letter-spacing:0.06em;
  text-transform:uppercase;
  font-size:12px;
}

/* ---------- CUTMARK / MOTIF ---------- */
.pm-cutmark{
  width:36px; height:36px;
  border:2px solid currentColor;
  position:relative;
  flex-shrink:0;
}
.pm-cutmark::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(135deg, transparent 49%, currentColor 49%, currentColor 52%, transparent 52%);
}

/* ---------- HEADER ---------- */
.pm-header{
  background:var(--pm-green-deep);
  color:var(--pm-white);
  padding:22px 0;
  position:sticky; top:0; z-index:50;
}
.pm-header .container{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.pm-logo{
  display:flex; align-items:center; gap:14px;
  color:var(--pm-white);
}
.pm-logo .pm-cutmark{width:30px; height:30px;}
.pm-logo .word{
  font-family:'Space Grotesk', sans-serif;
  font-weight:600;
  font-size:20px;
  letter-spacing:0.01em;
}
.pm-logo .word span{color:var(--pm-green-light);}

.pm-nav ul{
  list-style:none; display:flex; gap:30px; margin:0; padding:0;
}
.pm-nav a{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.85);
  transition:color .15s ease;
}
.pm-nav a:hover, .pm-nav .current-menu-item > a{color:var(--pm-white); border-bottom:1px solid var(--pm-green-light);}

.pm-menu-toggle{display:none; background:none; border:1px solid rgba(255,255,255,0.4); color:var(--pm-white); padding:8px 12px; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.06em;}

@media(max-width:820px){
  .pm-nav{display:none; width:100%;}
  .pm-nav.is-open{display:block;}
  .pm-header .container{flex-wrap:wrap;}
  .pm-menu-toggle{display:block;}
  .pm-nav ul{flex-direction:column; gap:14px; padding:20px 0 6px;}
}

/* ---------- HERO ---------- */
.pm-hero{
  background:var(--pm-green-deep);
  color:var(--pm-white);
  padding:90px 0 74px;
  position:relative;
  overflow:hidden;
}
.pm-hero .container{position:relative; z-index:2;}
.pm-hero .eyebrow{color:var(--pm-green-light); margin-bottom:16px; display:block;}
.pm-hero h1{margin-bottom:20px;}
.pm-hero p.lede{max-width:520px; color:rgba(255,255,255,0.78); font-size:17px;}
.pm-hero .cta-row{margin-top:32px; display:flex; gap:16px; flex-wrap:wrap;}

.pm-hero .slab-deco{
  position:absolute; right:-80px; top:-60px; width:460px; height:460px; opacity:0.5; z-index:1;
}

/* ---------- BUTTONS ---------- */
.pm-btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:13px 26px;
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px; letter-spacing:0.06em; text-transform:uppercase;
  border:1px solid currentColor;
  transition:opacity .15s ease;
}
.pm-btn:hover{opacity:0.8;}
.pm-btn.solid{background:var(--pm-white); color:var(--pm-green-deep); border-color:var(--pm-white);}
.pm-btn.outline{color:var(--pm-white);}
.pm-btn.dark{background:var(--pm-green-deep); color:var(--pm-white); border-color:var(--pm-green-deep);}
.pm-btn.dark:hover{opacity:0.85;}

/* ---------- SECTIONS ---------- */
.pm-section{padding:76px 0;}
.pm-section + .pm-section{border-top:1px solid var(--pm-line);}
.pm-section-head{margin-bottom:44px; max-width:600px;}
.pm-section-head .mono{color:var(--pm-green); display:block; margin-bottom:12px;}

.pm-grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.pm-grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}

/* ---------- PRODUCT / REALISATION CARDS ---------- */
.pm-card{
  background:var(--pm-white); border:1px solid var(--pm-line);
  display:flex; flex-direction:column;
}
.pm-card .thumb{aspect-ratio:4/3; overflow:hidden; background:var(--pm-off-white);}
.pm-card .thumb img{width:100%; height:100%; object-fit:cover;}
.pm-card .body{padding:22px;}
.pm-card .body h3{margin-bottom:8px;}
.pm-card .body .excerpt{font-size:14.5px; margin-bottom:14px;}
.pm-card .body .specs{color:rgba(22,48,31,0.55); margin-bottom:0;}
.pm-card .body a.more{
  font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--pm-green); border-bottom:1px solid var(--pm-green);
}

.pm-gallery-item{position:relative; aspect-ratio:1/1; overflow:hidden; background:var(--pm-off-white);}
.pm-gallery-item img{width:100%; height:100%; object-fit:cover; transition:transform .3s ease;}
.pm-gallery-item:hover img{transform:scale(1.05);}
.pm-gallery-item .cap{
  position:absolute; left:0; right:0; bottom:0;
  background:linear-gradient(0deg, rgba(22,48,31,0.85), transparent);
  color:var(--pm-white); padding:16px 14px 10px;
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.04em;
}

/* ---------- PAGE TITLE BAND ---------- */
.pm-page-title{
  background:var(--pm-green-deep); color:var(--pm-white);
  padding:64px 0 50px;
}
.pm-page-title .mono{color:var(--pm-green-light); margin-bottom:10px; display:block;}
.pm-page-title h1{margin:0;}

/* ---------- CONTENT (about page etc.) ---------- */
.pm-content{padding:70px 0; max-width:760px; margin:0 auto;}
.pm-content .container{padding:0;}

/* ---------- CONTACT ---------- */
.pm-contact-wrap{display:grid; grid-template-columns:1.3fr 1fr; gap:50px; align-items:start;}
.pm-form label{display:block; font-family:'IBM Plex Mono',monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:6px; color:var(--pm-green);}
.pm-form .field{margin-bottom:20px;}
.pm-form input[type=text], .pm-form input[type=email], .pm-form textarea{
  width:100%; border:1px solid var(--pm-line); background:var(--pm-white);
  padding:12px 14px; font-family:'Inter',sans-serif; font-size:15px; color:var(--pm-green-deep);
}
.pm-form textarea{min-height:140px; resize:vertical;}
.pm-form .hp{position:absolute; left:-9999px;}
.pm-contact-info{background:var(--pm-white); border:1px solid var(--pm-line); padding:30px;}
.pm-contact-info .row{margin-bottom:18px;}
.pm-contact-info .mono{color:var(--pm-green); display:block; margin-bottom:4px;}
.pm-notice{padding:14px 18px; margin-bottom:24px; font-family:'IBM Plex Mono',monospace; font-size:13px;}
.pm-notice.success{background:#E7EFE8; color:var(--pm-green-deep); border:1px solid var(--pm-green);}
.pm-notice.error{background:#F5E6E2; color:#8a3b2c; border:1px solid #8a3b2c;}

/* ---------- SINGLE PRODUIT ---------- */
.pm-single-produit .hero-img{aspect-ratio:16/9; overflow:hidden; background:var(--pm-off-white); margin-bottom:36px;}
.pm-single-produit .hero-img img{width:100%; height:100%; object-fit:cover;}
.pm-specs-box{
  border:1px solid var(--pm-line); background:var(--pm-white);
  padding:22px 26px; margin:30px 0;
  font-family:'IBM Plex Mono', monospace; font-size:13.5px;
}
.pm-specs-box div{display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px dashed var(--pm-line);}
.pm-specs-box div:last-child{border-bottom:none;}
.pm-specs-box .k{color:var(--pm-green);}

/* ---------- FOOTER ---------- */
.pm-footer{background:var(--pm-green-deep); color:rgba(255,255,255,0.75); padding:56px 0 30px;}
.pm-footer .container{display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px;}
.pm-footer .pm-logo{margin-bottom:14px;}
.pm-footer .col{max-width:280px;}
.pm-footer a:hover{color:var(--pm-white);}
.pm-footer .bottom{
  margin-top:40px; padding-top:20px; border-top:1px solid rgba(255,255,255,0.12);
  font-family:'IBM Plex Mono', monospace; font-size:11px; color:rgba(255,255,255,0.5);
}

@media(max-width:900px){
  .pm-grid-3{grid-template-columns:1fr 1fr;}
  .pm-grid-4{grid-template-columns:1fr 1fr;}
  .pm-contact-wrap{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .pm-grid-3, .pm-grid-4{grid-template-columns:1fr;}
}
