/*
Theme Name: STUDIO CALCO
Theme URI: https://studiocalco.com/
Author: STUDIO CALCO
Description: Minimal editorial WordPress theme for STUDIO CALCO.
Version: 2.6.2
Text Domain: studiocalco
*/

:root{
  --bg:#f4f1e8;
  --text:#11110f;
  --muted:#77736b;
  --line:rgba(17,17,15,.17);
  --soft:#d9d4ca;
  --max:1540px;
  --pad:clamp(24px,4.2vw,78px);
  --space:clamp(62px,7vw,104px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic",Meiryo,sans-serif;
  line-height:1.8;letter-spacing:.025em;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover{opacity:.58}
.site-wrap{width:min(100%,var(--max));margin:0 auto;padding:0 var(--pad)}

.site-header{
  width:min(100%,var(--max));margin:0 auto;padding:28px var(--pad) 18px;
  display:flex;align-items:center;justify-content:space-between;gap:32px;
}
.site-brand{display:block;flex:0 0 auto;line-height:1}
.site-brand img{width:clamp(182px,15vw,230px);height:auto;display:block}
.site-brand-text{font-size:clamp(20px,1.8vw,29px);font-weight:900;letter-spacing:-.045em;line-height:1}
.site-nav ul{display:flex;gap:clamp(16px,2.1vw,34px);list-style:none;padding:0;margin:0}
.site-nav a{font-size:10px;font-weight:800;letter-spacing:.12em;white-space:nowrap}
.menu-toggle{display:none;background:none;border:0;font:inherit;font-size:11px;font-weight:800;letter-spacing:.12em}

.hero{
  min-height:72vh;
  display:grid;grid-template-columns:minmax(430px,.98fr) minmax(0,1.02fr);
  gap:clamp(36px,4.4vw,80px);align-items:center;
  padding-top:clamp(46px,5vw,76px);padding-bottom:clamp(54px,6vw,88px);
}
.hero-copybox{align-self:center}
.hero-kicker{font-size:9px;font-weight:900;letter-spacing:.18em;margin:0 0 30px}
.hero-title{font-size:clamp(44px,4.8vw,74px);line-height:1.02;letter-spacing:-.065em;margin:0;font-weight:900;word-break:keep-all}
.hero-line{display:block;white-space:nowrap;word-break:keep-all}
.hero-copy{max-width:35rem;margin:32px 0 0;font-size:clamp(13px,1.02vw,16px);line-height:2.05}
.hero-media{width:100%;aspect-ratio:5/4;min-height:0;position:relative;overflow:hidden;background:var(--soft)}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.hero-media.is-empty:before{content:"HERO IMAGE";position:absolute;inset:0;display:grid;place-items:center;font-size:9px;font-weight:900;letter-spacing:.2em;color:#88837b}
.hero-note{display:flex;gap:18px;align-items:center;margin-top:40px;font-size:9px;font-weight:800;letter-spacing:.14em;color:var(--muted)}
.hero-note:before{content:"";width:38px;height:1px;background:currentColor}

.section{padding:clamp(56px,6.3vw,92px) 0;border-top:1px solid var(--line)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:clamp(30px,3.6vw,50px)}
.section-head-left{min-width:0}
.section-index{font-size:9px;font-weight:900;letter-spacing:.15em;color:var(--muted);margin-bottom:10px}
.section-title{font-size:clamp(34px,3.9vw,60px);line-height:.96;letter-spacing:-.06em;margin:0;font-weight:900;text-align:left}
.section-desc{font-size:11px;color:var(--muted);margin:8px 0 0;letter-spacing:.04em;text-align:left}
.section-link{font-size:9px;font-weight:900;letter-spacing:.16em;border-bottom:1px solid currentColor;padding-bottom:3px;margin-bottom:4px;white-space:nowrap}

.journal-grid,.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(22px,2.6vw,38px)}
.journal-card,.project-card{min-width:0}
.journal-thumb,.project-thumb{aspect-ratio:4/3;background:var(--soft);overflow:hidden;margin-bottom:20px;position:relative}
.journal-thumb img,.project-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.journal-card:hover .journal-thumb img,.project-card:hover img{transform:scale(1.018)}
.journal-thumb.no-image:after,.project-thumb.no-image:after{position:absolute;left:18px;bottom:14px;font-size:9px;font-weight:900;letter-spacing:.16em;color:#8f8a80}
.journal-thumb.no-image:after{content:"JOURNAL"}
.project-thumb.no-image:after{content:"PROJECT"}
.journal-meta{display:flex;gap:13px;flex-wrap:wrap;font-size:9px;font-weight:900;letter-spacing:.13em;color:var(--muted)}
.journal-title{font-size:clamp(20px,1.7vw,28px);line-height:1.38;letter-spacing:-.04em;margin:13px 0 10px}
.journal-excerpt{font-size:12px;line-height:1.8;color:#504c45;margin:0;max-width:38rem}
.journal-date{margin-top:18px;font-size:9px;letter-spacing:.08em;color:var(--muted)}
.card-kicker{font-size:9px;color:var(--muted);font-weight:900;letter-spacing:.14em}
.card-title{font-size:clamp(22px,1.9vw,32px);line-height:1.16;letter-spacing:-.05em;margin:8px 0 7px}
.card-text{margin:0;color:#555149;font-size:12px;line-height:1.8}

.favorites-list{border-top:1px solid var(--line)}
.favorite-item{display:grid;grid-template-columns:40px minmax(0,1fr) 18px;gap:18px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}
.favorite-number{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--muted)}
.favorite-main{display:grid;grid-template-columns:max-content auto;gap:14px;align-items:baseline;min-width:0}
.favorite-title{font-size:clamp(20px,1.9vw,28px);font-weight:800;letter-spacing:-.03em;line-height:1.3}
.favorite-note{font-size:9px;color:var(--muted);letter-spacing:.12em;white-space:nowrap;margin-left:2px}
.favorite-arrow{font-size:18px;text-align:right;color:var(--muted)}

.people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(34px,5vw,70px)}
.person-card{display:grid;grid-template-columns:150px 1fr;gap:30px;align-items:start;max-width:720px}
.person-thumb{aspect-ratio:1/1;background:var(--soft);overflow:hidden}
.person-thumb img{width:100%;height:100%;object-fit:cover;object-position:center}
.person-role{font-size:9px;font-weight:900;letter-spacing:.14em;color:var(--muted)}
.person-name{font-size:clamp(30px,2.6vw,40px);margin:8px 0 12px;line-height:1.1;letter-spacing:-.045em}
.person-bio{margin:0;font-size:12px;line-height:1.85;color:#555149}

.about-grid{display:block}
.about-label{font-size:9px;font-weight:900;letter-spacing:.15em;color:var(--muted);margin-bottom:26px}
.about-key{font-size:clamp(40px,4.5vw,66px);line-height:1.08;letter-spacing:-.06em;margin:0 0 clamp(26px,3vw,38px);font-weight:900;text-align:left;max-width:12ch;word-break:keep-all}
.about-body{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);gap:clamp(30px,4.4vw,64px);align-items:start}
.about-copy{font-size:clamp(22px,2.15vw,34px);line-height:1.52;letter-spacing:-.035em;margin:0;font-weight:800}
.about-sub{margin:0;max-width:46rem;color:#514d46;font-size:13px;line-height:2.02}

.site-footer{border-top:1px solid var(--line);padding:46px 0 60px}
.footer-row{display:flex;justify-content:space-between;gap:30px;align-items:flex-end}
.footer-brand{line-height:1;min-width:0}
.footer-brand img{width:clamp(280px,34vw,520px);max-width:100%;height:auto;display:block}
.footer-brand-text{font-size:clamp(32px,4.6vw,70px);font-weight:900;letter-spacing:-.065em;line-height:.95}
.footer-meta{text-align:right;font-size:9px;letter-spacing:.12em;color:var(--muted)}

.article{max-width:850px;margin:0 auto;padding:clamp(80px,10vw,150px) 0}
.article-kicker{font-size:9px;font-weight:900;letter-spacing:.15em;color:var(--muted)}
.article-title{font-size:clamp(42px,6vw,82px);line-height:1.08;letter-spacing:-.055em;margin:18px 0 30px}
.article-meta{font-size:10px;color:var(--muted);margin-bottom:54px;letter-spacing:.06em}
.article-thumb{margin-bottom:56px}
.article-content{font-size:16px;line-height:2.15}
.article-content h2{font-size:32px;line-height:1.4;margin:2.5em 0 .7em;letter-spacing:-.03em}
.article-content p{margin:0 0 1.75em}
.article-content a{text-decoration:underline;text-underline-offset:4px}
.archive-title{font-size:clamp(54px,8vw,116px);letter-spacing:-.07em;line-height:.95;margin:clamp(90px,10vw,160px) 0 76px}

@media(max-width:1080px){
  .hero{grid-template-columns:minmax(360px,.95fr) minmax(0,1.05fr)}
  .hero-title{font-size:clamp(40px,4.9vw,62px)}
  .journal-grid,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:820px){
  .hero{grid-template-columns:1fr;gap:34px;min-height:0}
  .hero-title{font-size:clamp(42px,8.6vw,62px)}
  .hero-media{min-height:0;aspect-ratio:4/3}
  .hero-note{margin-top:30px}
  .people-grid{grid-template-columns:1fr}
  .about-body{grid-template-columns:1fr}
}
@media(max-width:680px){
  .site-header{align-items:flex-start}
  .menu-toggle{display:block}
  .site-nav{display:none;position:absolute;left:0;right:0;top:72px;background:var(--bg);z-index:20;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .site-nav.is-open{display:block}
  .site-nav ul{display:block;padding:24px var(--pad)}
  .site-nav li{padding:9px 0}
  .section-head{align-items:flex-start;flex-direction:column}
  .section-link{margin-top:6px}
  .journal-grid,.project-grid,.people-grid{grid-template-columns:1fr}
  .person-card{grid-template-columns:130px 1fr}
  .favorite-item{grid-template-columns:32px 1fr 16px;gap:10px}
  .favorite-main{grid-template-columns:1fr;gap:2px}
  .favorite-note{white-space:normal}
  .favorite-arrow{align-self:start;padding-top:4px}
  .footer-row{display:block}
  .footer-meta{text-align:left;margin-top:28px}
}
@media(max-width:520px){
  .hero-title{font-size:clamp(36px,12vw,54px)}
  .hero-line{white-space:normal}
  .person-card{grid-template-columns:1fr}
  .person-thumb{max-width:140px}
  .about-key{max-width:none}
}


/* FAVORITES category archive */
.favorite-archive{
  padding-top:clamp(80px,9vw,140px);
  padding-bottom:var(--space);
}
.favorite-archive-head{
  max-width:900px;
  margin-bottom:clamp(54px,7vw,96px);
}
.favorite-archive-kicker{
  font-size:9px;
  font-weight:900;
  letter-spacing:.16em;
  color:var(--muted);
  margin-bottom:20px;
}
.favorite-archive-title{
  font-size:clamp(52px,7vw,104px);
  line-height:.96;
  letter-spacing:-.065em;
  margin:0;
  font-weight:900;
}
.favorite-archive-description{
  max-width:620px;
  margin-top:28px;
  color:#514d46;
  font-size:13px;
  line-height:2;
}
.favorite-article-list{
  border-top:1px solid var(--line);
}
.favorite-article-row{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 22px;
  gap:24px;
  align-items:center;
  padding:30px 0;
  border-bottom:1px solid var(--line);
}
.favorite-article-main{
  display:grid;
  grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);
  gap:clamp(28px,5vw,80px);
  align-items:baseline;
}
.favorite-article-title{
  font-size:clamp(22px,2.4vw,38px);
  font-weight:800;
  letter-spacing:-.04em;
  line-height:1.25;
}
.favorite-article-excerpt{
  font-size:12px;
  line-height:1.9;
  color:var(--muted);
}
.favorite-empty{
  padding:40px 0;
  color:var(--muted);
  font-size:13px;
}
@media(max-width:680px){
  .favorite-article-main{
    grid-template-columns:1fr;
    gap:6px;
  }
  .favorite-article-row{
    grid-template-columns:32px minmax(0,1fr) 16px;
    gap:12px;
  }
}


/* v2.1 FAVORITES archive */
.favorites-archive-page{
  padding-top:clamp(72px,7vw,110px);
  padding-bottom:var(--space);
}
.favorites-archive-head{
  margin-bottom:clamp(42px,5vw,70px);
  max-width:760px;
}
.favorites-archive-kicker{
  font-size:9px;
  font-weight:900;
  letter-spacing:.16em;
  color:var(--muted);
  margin-bottom:14px;
}
.favorites-archive-title{
  margin:0;
  font-size:clamp(38px,4.2vw,64px);
  line-height:.98;
  letter-spacing:-.06em;
  font-weight:900;
}
.favorites-archive-subtitle{
  margin:12px 0 0;
  font-size:12px;
  color:var(--muted);
  letter-spacing:.04em;
}
.favorites-archive-page .favorite-article-list{
  border-top:1px solid var(--line);
}
.favorites-archive-page .favorite-article-row{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 22px;
  gap:24px;
  align-items:center;
  padding:28px 0;
  border-bottom:1px solid var(--line);
}
.favorites-archive-page .favorite-article-main{
  display:grid;
  grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);
  gap:clamp(28px,5vw,74px);
  align-items:baseline;
}
.favorites-archive-page .favorite-article-title{
  font-size:clamp(22px,2.2vw,34px);
  font-weight:800;
  letter-spacing:-.04em;
  line-height:1.25;
}
.favorites-archive-page .favorite-article-excerpt{
  font-size:12px;
  line-height:1.9;
  color:var(--muted);
}
.favorites-archive-page .favorite-empty{
  padding:32px 0;
  color:var(--muted);
  font-size:13px;
}
@media(max-width:680px){
  .favorites-archive-page .favorite-article-row{
    grid-template-columns:32px minmax(0,1fr) 16px;
    gap:12px;
  }
  .favorites-archive-page .favorite-article-main{
    grid-template-columns:1fr;
    gap:6px;
  }
}


/* v2.2 dynamic FAVORITES */
.favorite-empty-home{
  padding:24px 0;
  color:var(--muted);
  font-size:12px;
}

.favorites-archive-page .favorite-article-row{
  grid-template-columns:42px 112px minmax(0,1fr) 22px;
  gap:24px;
  align-items:center;
  padding:26px 0;
}

.favorite-article-thumb{
  display:block;
  width:112px;
  aspect-ratio:1 / 1;
  background:var(--soft);
  overflow:hidden;
}

.favorite-article-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.favorite-article-thumb.is-empty{
  position:relative;
}

.favorite-article-thumb.is-empty::after{
  content:"IMAGE";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size:8px;
  font-weight:900;
  letter-spacing:.16em;
  color:#918c83;
}

.favorites-archive-page .favorite-article-main{
  display:block;
}

.favorites-archive-page .favorite-article-title{
  display:block;
  margin-bottom:8px;
}

.favorites-archive-page .favorite-article-excerpt{
  display:block;
  max-width:720px;
}

@media(max-width:680px){
  .favorites-archive-page .favorite-article-row{
    grid-template-columns:28px 84px minmax(0,1fr);
    gap:12px;
  }

  .favorite-article-thumb{
    width:84px;
  }

  .favorites-archive-page .favorite-arrow{
    display:none;
  }
}


/* v2.3 FAVORITES visual archive */
.favorite-article-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(74px,8vw,130px) clamp(54px,6vw,92px);
  align-items:start;
}

.favorite-visual-card{
  display:grid;
  grid-template-columns:minmax(150px,220px) minmax(0,1fr);
  gap:clamp(22px,2.4vw,38px);
  align-items:start;
  min-width:0;
}

.favorite-visual-thumb{
  display:block;
  width:100%;
  aspect-ratio:1 / 1;
  background:var(--soft);
  overflow:hidden;
}

.favorite-visual-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.favorite-visual-thumb.is-empty{
  position:relative;
}

.favorite-visual-thumb.is-empty::after{
  content:"IMAGE";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size:8px;
  font-weight:900;
  letter-spacing:.16em;
  color:#918c83;
}

.favorite-visual-meta{
  display:block;
  min-width:0;
  padding-top:2px;
}

.favorite-visual-number{
  display:block;
  margin-bottom:18px;
  font-size:10px;
  line-height:1;
  letter-spacing:.12em;
  color:var(--muted);
}

.favorite-visual-title{
  display:block;
  font-size:clamp(18px,1.35vw,24px);
  line-height:1.45;
  letter-spacing:-.02em;
  font-weight:500;
}

@media(max-width:1180px){
  .favorite-article-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .favorite-article-grid{
    grid-template-columns:1fr;
    gap:42px;
  }

  .favorite-visual-card{
    grid-template-columns:120px minmax(0,1fr);
    gap:20px;
  }
}

@media(max-width:460px){
  .favorite-visual-card{
    grid-template-columns:96px minmax(0,1fr);
    gap:16px;
  }
}


/* v2.4 FAVORITES card excerpt */
.favorite-visual-excerpt{
  display:block;
  margin-top:14px;
  max-width:24em;
  font-size:12px;
  line-height:1.9;
  color:var(--muted);
  letter-spacing:.015em;
  font-weight:400;

  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
}

@media(max-width:760px){
  .favorite-visual-excerpt{
    margin-top:9px;
    font-size:11px;
    line-height:1.75;
    -webkit-line-clamp:2;
  }
}


/* v2.5.2 JOURNAL archive */
.journal-archive-page{
  padding-top:clamp(72px,7vw,110px);
  padding-bottom:var(--space);
}
.journal-archive-head{
  max-width:760px;
  margin-bottom:clamp(48px,6vw,82px);
}
.journal-archive-kicker{
  font-size:9px;
  font-weight:900;
  letter-spacing:.16em;
  color:var(--muted);
  margin-bottom:14px;
}
.journal-archive-title{
  margin:0;
  font-size:clamp(42px,5vw,72px);
  line-height:.98;
  letter-spacing:-.06em;
  font-weight:900;
}
.journal-archive-subtitle{
  margin:12px 0 0;
  font-size:12px;
  color:var(--muted);
}
.journal-archive-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(46px,5vw,82px) clamp(26px,3vw,44px);
}
.journal-archive-card{min-width:0}
.journal-archive-thumb{
  aspect-ratio:4/3;
  background:var(--soft);
  overflow:hidden;
  margin-bottom:20px;
  position:relative;
}
.journal-archive-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.journal-archive-thumb.is-empty::after{
  content:"JOURNAL";
  position:absolute;
  left:18px;
  bottom:14px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.16em;
  color:#8f8a80;
}
.journal-archive-card-title{
  font-size:clamp(20px,1.7vw,28px);
  line-height:1.38;
  letter-spacing:-.04em;
  margin:13px 0 10px;
}
.journal-archive-card-excerpt{
  font-size:12px;
  line-height:1.8;
  color:#504c45;
  margin:0;
}
.journal-empty{
  color:var(--muted);
  font-size:13px;
}

@media(max-width:1080px){
  .journal-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .journal-archive-grid{grid-template-columns:1fr}
}


/* v2.5.4 Tablet / mobile HERO
   Use the hero image as a full background and switch copy to white. */
@media(max-width:900px){
  .hero{
    position:relative;
    display:block;
    min-height:clamp(520px,78vh,760px);
    padding:0;
    overflow:hidden;
  }

  .hero-media{
    position:absolute;
    inset:0;
    z-index:0;
    width:100%;
    height:100%;
    min-height:0;
    aspect-ratio:auto;
    background:#111;
  }

  .hero-media img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }

  .hero::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
      linear-gradient(
        90deg,
        rgba(0,0,0,.70) 0%,
        rgba(0,0,0,.54) 44%,
        rgba(0,0,0,.30) 72%,
        rgba(0,0,0,.22) 100%
      );
  }

  .hero-copybox{
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:clamp(520px,78vh,760px);
    max-width:640px;
    padding:clamp(46px,8vw,82px) clamp(24px,6vw,56px);
    color:#fff;
  }

  .hero-kicker,
  .hero-copy,
  .hero-note{
    color:#fff;
  }

  .hero-note::before{
    background:#fff;
  }

  .hero-title{
    color:#fff;
    text-shadow:0 1px 16px rgba(0,0,0,.16);
  }
}

@media(max-width:560px){
  .hero{
    min-height:72vh;
  }

  .hero-copybox{
    min-height:72vh;
    padding:42px 22px;
  }

  .hero-title{
    font-size:clamp(38px,12vw,54px);
  }

  .hero-copy{
    max-width:30em;
    font-size:13px;
    line-height:1.95;
  }

  .hero-note{
    margin-top:30px;
  }
}


/* v2.6.0 Branding */
@media(max-width:680px){
  .site-brand img{width:clamp(150px,44vw,178px)}
  .footer-brand img{width:min(100%,340px)}
}



/* v2.6.2 — Header logo sizing
   header.php uses .site-brand > img */
.site-brand img {
  width: 270px;
  max-width: none;
  height: auto;
  display: block;
}

@media (max-width: 900px) {
  .site-brand img {
    width: 210px;
    max-width: none;
  }
}

@media (max-width: 560px) {
  .site-brand img {
    width: 165px;
    max-width: none;
  }
}
