:root{
  --bg:#fffdf9;
  --cream:#fbf6ef;
  --line:#eadfce;
  --wood:#b38350;
  --wood-dark:#7d5632;
  --dark:#2d2119;
  --muted:#6b5f56;
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Inter', Arial, sans-serif;
  --shadow:0 18px 45px rgba(70,45,22,.10);
}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--dark);font-family:var(--sans)}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}

.top-strip{
  height:36px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  align-items:center;
  text-align:center;
  background:var(--cream);
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:13px;
}

.header{
  height:112px;
  display:grid;
  grid-template-columns:270px 1fr 150px;
  align-items:center;
  padding:0 46px;
  background:rgba(255,253,249,.96);
  border-bottom:1px solid #f0e7dc;
  position:sticky;
  top:0;
  z-index:20;
  backdrop-filter:blur(12px);
}

.brand{display:flex;align-items:center;gap:12px}
.brand-mark{font-size:52px;color:var(--wood);line-height:1}
.brand strong{
  display:block;
  font-family:var(--serif);
  font-size:25px;
  line-height:.86;
  letter-spacing:.06em;
}
.brand small{
  display:block;
  margin-top:8px;
  font-size:10px;
  letter-spacing:.22em;
  font-weight:700;
  color:var(--wood-dark);
}
.nav{display:flex;justify-content:center;gap:45px;font-size:14px;font-weight:700;letter-spacing:.04em}
.icons{display:flex;justify-content:flex-end;gap:22px;font-size:24px}
.hamburger{display:none;border:0;background:transparent;font-size:30px;color:var(--dark)}

.hero{
  min-height:610px;
  display:grid;
  grid-template-columns:40% 60%;
  background:linear-gradient(90deg,#fffdf9 0%,#fbf5ec 100%);
  overflow:hidden;
}
.hero-text{padding:128px 0 0 56px;z-index:2}
.hero h1{
  margin:0;
  font-family:var(--serif);
  font-size:64px;
  line-height:.98;
  letter-spacing:-.035em;
  font-weight:600;
}
.hero p{
  max-width:410px;
  margin:30px 0 34px;
  color:#4f433b;
  font-size:19px;
  line-height:1.8;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:56px;
  padding:0 31px;
  background:var(--wood);
  color:white;
  border:1px solid var(--wood);
  border-radius:2px;
  font-size:13px;
  font-weight:800;
  letter-spacing:.075em;
}
.btn.secondary{background:transparent;color:var(--wood-dark)}
.hero-image{
  position:relative;
  min-height:610px;
}
.hero-image:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(90deg,#fffdf9 0%,rgba(255,253,249,.72) 18%,rgba(255,253,249,0) 52%);
}
.hero-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.section{padding:58px 36px 54px;text-align:center}
h2{
  margin:0;
  font-family:var(--serif);
  font-size:36px;
  line-height:1;
  font-weight:600;
}
.line{width:38px;height:2px;background:#c79a62;margin:17px auto 40px}

.occasion-grid,.product-grid{
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:32px;
}
.occasion-card,.product-card{
  background:white;
  border:1px solid #e8ded0;
  box-shadow:var(--shadow);
}
.occasion-card img{
  width:100%;
  height:255px;
  object-fit:cover;
}
.occasion-card div{
  height:154px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
}
.occasion-card span{
  color:var(--wood);
  font-size:38px;
  line-height:1;
  margin-bottom:10px;
}
.occasion-card h3{
  margin:0;
  font-family:var(--serif);
  font-size:28px;
  font-weight:600;
}
.occasion-card p{
  margin:14px 0 0;
  color:var(--wood-dark);
  font-size:13px;
  font-weight:800;
  letter-spacing:.09em;
}

.benefits{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  background:var(--cream);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:55px 70px 52px;
}
.benefits article{
  text-align:center;
  padding:0 54px;
  border-right:1px solid #e4d8ca;
}
.benefits article:last-child{border-right:0}
.benefits span{display:block;color:var(--wood);font-size:54px;margin-bottom:18px}
.benefits h3{margin:0 0 12px;font-size:18px;letter-spacing:.06em}
.benefits p{margin:0 auto;max-width:300px;color:var(--muted);line-height:1.55;font-size:15px}

.story{
  min-height:430px;
  display:grid;
  grid-template-columns:43% 57%;
  background:linear-gradient(90deg,#fffdf9,#fbf4e9);
  overflow:hidden;
}
.story-text{padding:66px 60px 0 86px}
.overline{margin:0 0 15px;color:#705849;font-size:14px}
.overline:after{content:"";display:block;width:35px;height:2px;background:var(--wood);margin-top:10px}
.story h2{
  max-width:505px;
  margin:0 0 24px;
  text-align:left;
  font-size:39px;
  line-height:1.06;
}
.story-text p:not(.overline){
  max-width:420px;
  margin:0 0 30px;
  color:var(--muted);
  line-height:1.7;
}
.story-photo{position:relative}
.story-photo:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(90deg,#fffdf9 0%,rgba(255,253,249,.55) 25%,rgba(255,253,249,0) 58%);
}
.story-photo img{
  width:100%;
  height:100%;
  min-height:430px;
  object-fit:cover;
  object-position:center;
}

.products{background:#fffdf9}
.product-card{position:relative;text-align:left}
.product-card button{
  position:absolute;
  right:13px;
  top:13px;
  z-index:2;
  width:33px;
  height:33px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.88);
  font-size:22px;
}
.product-card img{
  width:100%;
  height:235px;
  object-fit:cover;
}
.product-card div{padding:16px 16px 18px}
.product-card h3{margin:0 0 8px;font-size:16px;line-height:1.35}
.product-card p{margin:0 0 13px;color:var(--muted);font-size:14px}
.product-card strong{font-size:15px}

.footer{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  align-items:center;
  padding:29px 60px;
  background:var(--cream);
  border-top:1px solid var(--line);
  color:var(--wood);
  font-size:14px;
}
.footer div{display:flex;justify-content:center;gap:13px}
.footer div:first-child{justify-content:flex-start}
.footer div:last-child{justify-content:flex-end}
.footer span{color:var(--muted)}

@media(max-width:950px){
  .top-strip{display:none}
  .header{height:auto;min-height:88px;grid-template-columns:1fr auto;padding:16px 22px}
  .hamburger{display:block}
  .nav{display:none;grid-column:1/-1;flex-direction:column;align-items:flex-start;gap:16px;padding:18px 0 4px}
  .nav.open{display:flex}
  .icons{display:none}
  .hero,.story{grid-template-columns:1fr}
  .hero-text{padding:54px 24px 32px}
  .hero-image,.hero-image img{min-height:430px}
  .occasion-grid,.product-grid{grid-template-columns:repeat(2,1fr)}
  .benefits{grid-template-columns:1fr;padding:24px}
  .benefits article{border-right:0;border-bottom:1px solid #e4d8ca;padding:28px 10px}
  .benefits article:last-child{border-bottom:0}
  .story-text{padding:48px 24px}
  .footer{grid-template-columns:repeat(2,1fr)}
  .footer div,.footer div:first-child,.footer div:last-child{justify-content:center}
}

@media(max-width:560px){
  .brand-mark{font-size:42px}
  .brand strong{font-size:20px}
  .brand small{font-size:8px}
  .hero h1{font-size:43px}
  .hero p{font-size:16px}
  .section{padding-left:18px;padding-right:18px}
  .occasion-grid,.product-grid,.footer{grid-template-columns:1fr}
  .occasion-card img,.product-card img{height:245px}
  .story h2{font-size:32px}
}
