
/* Portfolio feature added for the MOJILUME. demonstration site. */
.portfolio-section{background:#f5f2eb;color:#26231d}
.portfolio-container{max-width:1200px;margin:auto}
.portfolio-kicker{display:block;color:#977947;font-size:11px;letter-spacing:.23em;font-weight:700;margin-bottom:14px}
.portfolio-heading{font-family:'Noto Serif JP','Yu Mincho',serif;font-size:clamp(30px,3.5vw,46px);font-weight:500;line-height:1.5;letter-spacing:-.035em;margin:0 0 14px}
.portfolio-lede{max-width:720px;font-size:13px;line-height:2.1;color:#666057;margin:0 0 38px}
.portfolio-card{display:grid;grid-template-columns:minmax(0,1.27fr) minmax(0,.9fr);align-items:stretch;border:1px solid #dcd4c5;background:#fffdf8;overflow:hidden;box-shadow:0 18px 45px rgba(31,26,20,.045)}
.portfolio-visual{position:relative;overflow:hidden;background:#e7e7d8;display:block;min-width:0}
.portfolio-visual img{display:block;width:100%;height:100%;min-height:335px;max-height:480px;object-fit:cover;object-position:center;transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.portfolio-visual:hover img{transform:scale(1.035)}
.portfolio-visual:focus-visible{outline:3px solid #b5955b;outline-offset:-3px}
.portfolio-image-badge{position:absolute;bottom:20px;left:20px;background:rgba(255,253,248,.96);padding:8px 13px;font-size:10px;font-weight:700;letter-spacing:.08em;color:#465b4e;box-shadow:0 4px 20px rgba(0,0,0,.08)}
.portfolio-copy{display:flex;flex-direction:column;justify-content:center;gap:0;padding:clamp(28px,4vw,60px)}
.portfolio-number{font-family:Georgia,serif;font-size:11px;letter-spacing:.23em;color:#a88c5a;margin:0 0 16px}
.portfolio-title{font-family:'Noto Serif JP','Yu Mincho',serif;font-size:clamp(27px,3vw,37px);font-weight:500;letter-spacing:-.04em;line-height:1.55;margin:0 0 12px}
.portfolio-type{font-size:12px;font-weight:600;color:#65685b;line-height:1.7;margin:0 0 25px}
.portfolio-description{font-size:13px;line-height:2.15;color:#706b62;margin:0 0 25px}
.portfolio-tags{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 28px}
.portfolio-tags span{border:1px solid #d9d0bf;padding:6px 9px;color:#635c50;font-size:10px;line-height:1.5}
.portfolio-button{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;gap:24px;background:#292722;color:#fff!important;padding:15px 22px;font-size:12px;letter-spacing:.03em;font-weight:600;text-decoration:none!important;min-height:52px;transition:transform .2s,background .2s}
.portfolio-button:hover{background:#403b32;transform:translateY(-2px)}
.portfolio-disclaimer{margin:17px 0 0;font-size:11px;line-height:2;color:#817a70}
/* Website detail page reuses the same module inside its narrower wrap. */
.web-portfolio{padding-top:20px;padding-bottom:75px}
.web-portfolio .portfolio-visual img{min-height:300px}
.web-portfolio .portfolio-copy{padding:32px}
.web-portfolio .portfolio-lede{margin-bottom:25px}
@media (max-width:820px){
  .portfolio-card{grid-template-columns:1fr}
  .portfolio-visual img{height:auto;aspect-ratio:16/10;min-height:0;max-height:none}
  .portfolio-copy{padding:30px}
}
@media (max-width:560px){
  .portfolio-visual img{aspect-ratio:16/11}
  .portfolio-image-badge{bottom:12px;left:12px;font-size:9px}
  .portfolio-copy{padding:25px 20px 30px}
  .portfolio-lede{font-size:12px}
  .portfolio-tags{gap:6px}
  .portfolio-button{width:100%}
}
@media (prefers-reduced-motion:reduce){.portfolio-visual img,.portfolio-button{transition:none!important}}

/* Salon showcase: editorial abstract visual rather than a storefront photo. */
.portfolio-card + .portfolio-card{margin-top:24px}
.portfolio-salon-visual{background:#eee5dc;}
.portfolio-salon-art{position:relative;isolation:isolate;min-height:390px;height:100%;display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,5vw,70px);overflow:hidden;background:radial-gradient(circle at 84% 15%,#d9bba7 0,transparent 34%),linear-gradient(135deg,#fbf3e9,#e4d5c8 72%,#d4bdad);color:#241c18}
.portfolio-salon-art::before{content:"";position:absolute;width:480px;height:480px;border-radius:50%;border:1px solid rgba(126,84,59,.23);top:-110px;right:-180px;z-index:-1}
.portfolio-salon-art::after{content:"";position:absolute;width:370px;height:370px;border-radius:50%;border:1px solid rgba(126,84,59,.15);bottom:-205px;left:-160px;z-index:-1}
.portfolio-salon-tiny{font-size:clamp(9px,.9vw,11px);letter-spacing:.25em;color:#7b5f50;font-weight:600}
.portfolio-salon-name{font-family:Georgia,'Times New Roman',serif;font-size:clamp(70px,8vw,124px);line-height:1.1;letter-spacing:-.06em;margin:20px 0 15px}
.portfolio-salon-name span{color:#aa7f62}
.portfolio-salon-jp{font-family:'Noto Serif JP','Yu Mincho',serif;font-size:clamp(22px,2.5vw,38px);line-height:1.55;color:#544238}
.portfolio-salon-bottom{display:inline-block;margin-top:32px;font-size:10px;letter-spacing:.19em;color:#8b6e5a}
.portfolio-salon-visual:hover .portfolio-salon-art{filter:saturate(1.08)}
@media(max-width:820px){.portfolio-salon-art{min-height:300px}.portfolio-salon-name{font-size:76px}.portfolio-salon-jp{font-size:27px}}
@media(max-width:560px){.portfolio-salon-art{min-height:270px;padding:28px}.portfolio-salon-name{font-size:62px}}
