/*
Theme Name: Elena Rizza Photography
Theme URI: https://elenarizza.com
Author: Guided Website Design
Description: Single-page portfolio theme for Elena Rizza Photography. Built old-school: all page markup lives in the WordPress Page content (edit via the Text/HTML tab of the Classic Editor), while this stylesheet and the theme templates provide the fixed structure, typography and layout.
Version: 1.0
Requires at least: 5.0
Requires PHP: 7.4
Text Domain: elena-rizza
*/

:root{
  --paper:#fbfaf7;
  --paper-2:#f4f1ed;
  --ink:#24211e;
  --soft:#8b8178;
  --line:#ddd6cf;
  --terracotta:#a75c45;
  --sage:#788270;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Gill Sans","Gill Sans MT",Calibri,sans-serif;
  font-weight:300;
  letter-spacing:.02em;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.nav{
  position:fixed;
  top:0;left:0;right:0;
  z-index:20;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:32px 48px;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  mix-blend-mode:multiply;
}
.nav .brand{letter-spacing:.18em}
.nav .links{display:flex;gap:34px;align-items:center}
.lang-toggle{display:flex;gap:10px;margin-left:10px}
.lang-toggle button{
  background:transparent;
  border:0;
  padding:0;
  font:inherit;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--soft);
  cursor:pointer;
}
.lang-toggle button.active{color:var(--ink);border-bottom:1px solid var(--ink)}

.hero{
  min-height:100vh;
  padding:150px 8vw 90px;
  display:grid;
  grid-template-columns:1fr;
  align-items:end;
}
.identity{
  max-width:1180px;
  margin:auto;
  width:100%;
}
h1{
  margin:0;
  font-family:Baskerville,"Libre Baskerville","Times New Roman",serif;
  font-style:italic;
  font-weight:400;
  font-size:clamp(58px,12vw,172px);
  line-height:.86;
  letter-spacing:-.055em;
}
.photography{
  margin-top:28px;
  font-size:12px;
  letter-spacing:.28em;
  text-transform:uppercase;
}
.statement{
  margin-top:90px;
  max-width:580px;
  font-size:20px;
  line-height:1.65;
  color:#4c4741;
}
.gallery-print{
  padding:70px 8vw 110px;
}
.print-wrap{
  max-width:980px;
  margin:auto;
}
.print-wrap img{
  width:100%;
  display:block;
  background:white;
}
.caption{
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-top:22px;
  color:var(--soft);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.editorial{
  padding:80px 8vw 130px;
  display:grid;
  grid-template-columns:minmax(280px,440px) minmax(300px,760px);
  gap:9vw;
  align-items:center;
  max-width:1440px;
  margin:auto;
}
.kicker{
  font-size:11px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--soft);
  margin-bottom:30px;
}
h2{
  font-family:Baskerville,"Libre Baskerville","Times New Roman",serif;
  font-style:italic;
  font-weight:400;
  font-size:clamp(38px,5.4vw,82px);
  line-height:.98;
  letter-spacing:-.035em;
  margin:0 0 34px;
}
p{
  font-size:16px;
  line-height:1.72;
  margin:0 0 22px;
  color:#48423c;
}
.editorial img{width:100%;display:block}

.collection{
  padding:70px 8vw 145px;
  max-width:1540px;
  margin:auto;
}
.collection-head{
  max-width:900px;
  margin:0 auto 82px;
  text-align:center;
}
.collection-head p{max-width:620px;margin-left:auto;margin-right:auto}
.photo-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:44px;
  align-items:start;
}
.photo-grid figure{
  margin:0;
  padding:0;
}
.photo-grid img{
  width:100%;
  display:block;
}
.photo-grid figcaption{
  margin-top:16px;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--soft);
}
.photo-grid .large{grid-column:span 7}
.photo-grid .small{grid-column:span 5}
.photo-grid .third{grid-column:span 4}
.photo-grid .half{grid-column:span 6}
.photo-grid .push{margin-top:90px}

.quote{
  padding:160px 8vw;
  text-align:center;
  background:var(--paper-2);
}
.quote blockquote{
  max-width:980px;
  margin:auto;
  font-family:Baskerville,"Libre Baskerville","Times New Roman",serif;
  font-style:italic;
  font-size:clamp(40px,6vw,96px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.services{
  padding:90px 8vw 155px;
  max-width:1180px;
  margin:auto;
  border-top:1px solid var(--line);
}
.service-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:42px;
  margin-top:44px;
}
.service h3{
  margin:0 0 15px;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:400;
}
.service p{font-size:14px;line-height:1.65;color:#5b554f}

.about{
  padding:110px 8vw 150px;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:8vw;
  align-items:center;
  max-width:1360px;
  margin:auto;
}
.about img{width:100%;display:block;filter:grayscale(100%)}
.contact{
  padding:140px 8vw 90px;
  text-align:center;
  border-top:1px solid var(--line);
}
.contact h2{margin-bottom:25px}
.button{
  display:inline-block;
  margin-top:30px;
  border-bottom:1px solid var(--ink);
  padding-bottom:8px;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.footer{
  padding:40px 48px;
  display:flex;
  justify-content:space-between;
  color:var(--soft);
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.reveal{animation:rise .9s ease both}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

@media(max-width:950px){
  .photo-grid{gap:28px}
  .photo-grid .large,.photo-grid .small,.photo-grid .third,.photo-grid .half{grid-column:span 12}
  .photo-grid .push{margin-top:0}
}
@media(max-width:850px){
  .nav{padding:24px}
  .nav .links{gap:18px}
  .nav .links a:nth-child(2){display:none}
  .hero{padding-top:120px}
  .statement{margin-top:60px}
  .editorial,.about{grid-template-columns:1fr;gap:50px}
  .service-grid{grid-template-columns:1fr 1fr}
  .footer{display:block;line-height:2.2}
}
@media(max-width:560px){
  .nav .links a:nth-child(3){display:none}
  .service-grid{grid-template-columns:1fr}
  .caption{display:block;line-height:1.8}
  h1{font-size:clamp(54px,16vw,92px)}
}
