  :root{
    --bg:#F6F2EB;
    --bg-soft:#EFE9DD;
    --text:#222222;
    --text-soft:#5B5851;
    --btn-primary:#31463A;
    --btn-primary-hover:#222222;
    --btn-secondary-border:#31463A;
    --btn-secondary-hover:#31463A;
    --link-hover:#7B8262;
    --accent:#B56F53;
    --ivory:#F6F2EB;
    --line: rgba(34,34,34,0.13);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:'Inter', sans-serif;
    font-weight:300;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3,.display{
    font-family:'Cormorant Garamond', serif;
    font-weight:400;
    line-height:1.1;
    margin:0;
    letter-spacing:0.005em;
  }
  em{font-style:italic; color:var(--accent);}

  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}

  .wrap{max-width:1160px; margin:0 auto; padding:0 32px;}

  a:focus-visible, button:focus-visible{
    outline:2px solid var(--accent);
    outline-offset:3px;
  }

  ::selection{background:var(--accent); color:#fff;}

  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:46px;
    padding:0 34px;
    border-radius:5px;
    font-family:'Inter', sans-serif;
    font-size:0.92rem;
    letter-spacing:0.03em;
    box-shadow:none;
    transition:background 250ms ease, color 250ms ease, border-color 250ms ease;
    border:1px solid transparent;
    cursor:pointer;
  }
  .btn-primary{
    background:var(--btn-primary);
    color:var(--bg);
    border-color:var(--btn-primary);
  }
  .btn-primary:hover{background:var(--btn-primary-hover); border-color:var(--btn-primary-hover);}
  .btn-secondary{
    background:transparent;
    color:var(--text);
    border-color:var(--btn-secondary-border);
  }
  .btn-secondary:hover{background:var(--btn-secondary-hover); color:var(--bg); border-color:var(--btn-secondary-hover);}

  .text-link{
    color:var(--accent);
    border-bottom:1px solid currentColor;
    padding-bottom:2px;
    transition:color 250ms ease, border-color 250ms ease;
  }
  .text-link:hover{color:var(--link-hover); border-color:var(--link-hover);}

  header{
    position:sticky;
    top:0;
    z-index:20;
    background:rgba(246,242,235,0.97);
    border-bottom:1px solid var(--line);
  }
  nav.wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-top:18px;
    padding-bottom:18px;
  }
  .brand img{height:38px; width:auto;}
  .nav-links{
    display:flex;
    gap:36px;
    list-style:none;
    margin:0;
    padding:0;
    font-size:0.9rem;
    letter-spacing:0.02em;
  }
  .nav-links a{border-bottom:1px solid transparent; padding-bottom:3px; transition:color 250ms ease, border-color 250ms ease;}
  .nav-links a:hover{color:var(--link-hover); border-color:var(--link-hover);}
  .nav-toggle{display:none;}

  @media (max-width:760px){
    .nav-links{
      position:fixed;
      inset:73px 0 0 0;
      z-index:30;
      flex-direction:column;
      background:var(--bg);
      padding:32px;
      gap:22px;
      font-size:1.1rem;
      transform:translateY(-110%);
      visibility:hidden;
      opacity:0;
      pointer-events:none;
      transition:transform 350ms ease, opacity 350ms ease, visibility 0s linear 350ms;
    }
    .nav-links.open{
      transform:translateY(0);
      visibility:visible;
      opacity:1;
      pointer-events:auto;
      transition:transform 350ms ease, opacity 350ms ease;
    }
    .nav-toggle{
      display:block;
      background:none;
      border:1px solid var(--accent);
      border-radius:5px;
      padding:8px 14px;
      font-family:'Inter', sans-serif;
      font-size:0.9rem;
      color:var(--accent);
      cursor:pointer;
    }
  }

  .hero{
    position:relative;
    min-height:76vh;
    display:flex;
    align-items:center;
    overflow:hidden;
    text-align:left;
    background-image:url('banner_home.jpg');
    background-size:cover;
    background-position:center;
    background-attachment:fixed;
  }
  .hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg, rgba(34,34,34,0.52) 0%, rgba(34,34,34,0.28) 55%, rgba(34,34,34,0.12) 100%);
  }
  .hero::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    opacity:0.18;
    mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
    background-size:180px 180px;
    animation:grain 1.1s steps(4) infinite;
  }
  @keyframes grain{
    0%{transform:translate(0,0);}
    25%{transform:translate(-2%,1%);}
    50%{transform:translate(1%,-2%);}
    75%{transform:translate(-1%,2%);}
    100%{transform:translate(2%,-1%);}
  }
  @media (prefers-reduced-motion: reduce){
    .hero::after{animation:none;}
  }
  .hero .wrap{
    position:relative;
    z-index:2;
  }
  .hero-inner{max-width:640px;}
  .hero-eyebrow{
    font-size:0.78rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--ivory);
    opacity:0.85;
    margin-bottom:26px;
  }
  .hero h1{
    font-size:clamp(2.4rem, 5.4vw, 4.1rem);
    max-width:16ch;
    margin:0;
    font-style:italic;
    font-weight:400;
    color:var(--ivory);
  }
  .hero .subline{
    font-family:'Inter', sans-serif;
    font-size:1.02rem;
    color:var(--ivory);
    opacity:0.85;
    letter-spacing:0.04em;
    margin-top:22px;
  }
  .hero-actions{
    display:flex;
    gap:16px;
    justify-content:flex-start;
    margin-top:44px;
    flex-wrap:wrap;
  }
  .hero .btn-secondary{
    color:var(--ivory);
    border-color:var(--ivory);
  }
  .hero .btn-secondary:hover{background:var(--ivory); color:var(--btn-primary); border-color:var(--ivory);}
  .btn-hero-accent{
    background:var(--accent);
    border-color:var(--accent);
  }
  .btn-hero-accent:hover{background:var(--btn-primary-hover); border-color:var(--btn-primary-hover);}

  @media (max-width:760px){
    .hero{min-height:62vh; text-align:left; background-attachment:scroll;}
  }

  section{padding:100px 0;}
  .section-soft{background:var(--bg-soft);}
  .section-head{
    max-width:640px;
    margin:0 auto 56px;
    text-align:center;
  }
  .section-head .eyebrow{
    font-size:0.78rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--text-soft);
    margin-bottom:16px;
  }
  .section-head h2{font-size:clamp(1.9rem, 4vw, 2.5rem); font-style:italic;}

  .fill-in{opacity:0; transform:translateY(20px); transition:opacity 0.7s ease, transform 0.7s ease;}
  .fill-in.in-view{opacity:1; transform:translateY(0);}

  .gallery{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:28px;
  }
  .piece{
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .piece-frame{
    aspect-ratio:4/5;
    border-radius:3px;
    position:relative;
    overflow:hidden;
    background:linear-gradient(150deg, var(--tone,#ddd) 0%, var(--bg-soft) 75%);
  }
  .piece:nth-child(1) .piece-frame{--tone:#B56F53;}
  .piece:nth-child(2) .piece-frame{--tone:#7B8262;}
  .piece:nth-child(3) .piece-frame{--tone:#31463A;}
  .piece:nth-child(4) .piece-frame{--tone:#C9A084;}
  .piece:nth-child(5) .piece-frame{--tone:#8E9A7E;}
  .piece:nth-child(6) .piece-frame{--tone:#4C5C50;}
  .piece-frame::after{
    content:"artwork placeholder";
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:rgba(34,34,34,0.4);
    font-size:0.78rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    background:rgba(246,242,235,0.28);
  }
  .piece-caption{display:flex; flex-direction:column; gap:2px; font-size:0.88rem; color:var(--text-soft);}
  .piece-caption span:nth-child(2){font-size:0.85rem; color:var(--text-soft);}
  .piece-caption span:first-child{font-family:'DM Sans', sans-serif; font-weight:300; letter-spacing:0.02em; font-size:1.02rem; color:var(--text);}

  .gallery-more{
    display:flex;
    justify-content:center;
    gap:16px;
    flex-wrap:wrap;
    margin-top:52px;
  }

  @media (max-width:900px){
    .gallery{grid-template-columns:repeat(2, 1fr);}
  }
  @media (max-width:600px){
    .gallery{grid-template-columns:1fr;}
  }

  .about-grid{
    display:grid;
    grid-template-columns:0.8fr 1.2fr;
    gap:64px;
    align-items:center;
  }
  .about-photo{
    aspect-ratio:3/4;
    border-radius:3px;
    background:linear-gradient(160deg, var(--accent) 0%, var(--bg-soft) 70%);
    position:relative;
    overflow:hidden;
  }
  .about-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    position:relative;
    z-index:1;
  }
  .about-photo::after{
    content:"portrait placeholder";
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:rgba(34,34,34,0.4);
    font-size:0.78rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
  }
  .about-copy .eyebrow{
    font-size:0.78rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--text-soft);
    margin-bottom:18px;
  }
  .about-copy h2{
    font-style:italic;
    font-size:clamp(1.7rem, 3.4vw, 2.3rem);
    margin-bottom:26px;
    max-width:14ch;
  }
  .about-copy p{margin:0 0 18px; color:var(--text-soft); font-size:1.02rem;}
  .about-copy p.lead{color:var(--text); font-size:1.08rem;}
  .about-copy .text-link{display:inline-block; margin-top:10px; font-size:0.95rem;}

  @media (max-width:820px){
    .about-grid{grid-template-columns:1fr;}
    .about-photo{max-width:320px;}
  }

  footer{padding:100px 0 48px; text-align:center;}
  footer .eyebrow{
    font-size:0.78rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--text-soft);
    margin-bottom:18px;
  }
  footer h2{font-style:italic; font-size:clamp(2rem, 4.6vw, 3rem); max-width:16ch; margin:0 auto;}
  footer .lede{color:var(--text-soft); max-width:44ch; margin:20px auto 0; font-size:1.02rem;}
  footer .btn{margin-top:38px;}
  .footer-logo{
    display:block;
    height:30px;
    width:auto;
    margin:0 auto 32px;
    opacity:0.85;
  }
  .footer-social{
    display:flex;
    justify-content:center;
    gap:28px;
    margin-top:56px;
    padding-top:32px;
    border-top:1px solid var(--line);
    font-size:0.88rem;
  }
  .footer-social a{color:var(--text-soft); transition:color 250ms ease;}
  .footer-social a:hover{color:var(--link-hover);}
  .footer-bottom{
    margin-top:28px;
    font-size:0.78rem;
    color:var(--text-soft);
  }
  .footer-bottom a{
    color:var(--accent);
    text-decoration:underline;
    text-underline-offset:2px;
    transition:color 250ms ease;
  }
  .footer-bottom a:hover{color:var(--link-hover);}

/* ---------- Inner page hero (About) ---------- */
.page-hero{
  padding:70px 0 15px;
  text-align:left;
}
.page-hero .eyebrow{
  font-size:0.78rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--text-soft);
  margin-bottom:18px;
}
.page-hero h1{
  font-style:italic;
  font-weight:400;
  font-size:clamp(2.2rem, 5vw, 3.4rem);
  max-width:18ch;
}

.story-photo{
  aspect-ratio:4/5;
  border-radius:3px;
  overflow:hidden;
  background:linear-gradient(160deg, var(--accent) 0%, var(--bg-soft) 70%);
  position:relative;
}
.story-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  position:relative;
  z-index:1;
}

.story-grid{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:64px;
  align-items:start;
}
.story-copy p{margin:0 0 20px; color:var(--text-soft); font-size:1.04rem;}
.story-copy p.lead{color:var(--text); font-size:1.3rem; font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:400; line-height:1.35;}

@media (max-width:820px){
  .story-grid{grid-template-columns:1fr;}
  .story-photo{max-width:340px;}
}

.milestones{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:20px;
}
.milestone{
  background:var(--bg);
  padding:34px 30px;
}
.milestone span{
  font-family:'DM Sans', sans-serif;
  font-weight:300;
  font-size:0.82rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--accent);
}
.milestone h3{
  font-style:italic;
  font-weight:400;
  font-size:1.4rem;
  margin:12px 0 10px;
}
.milestone p{margin:0; color:var(--text-soft); font-size:0.94rem;}

@media (max-width:760px){
  .milestones{grid-template-columns:1fr;}
}

.story-cta{
  text-align:center;
  padding:90px 0 40px;
}
.story-cta h2{font-style:italic; font-size:clamp(1.9rem, 4vw, 2.6rem); max-width:20ch; margin:0 auto 26px;}

/* ---------- Collections (About page) ---------- */
.sequence{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin:6px 0 30px;
}
.sequence .step{
  font-family:'DM Sans', sans-serif;
  font-weight:300;
  letter-spacing:0.05em;
  font-size:0.88rem;
  text-transform:uppercase;
  padding:8px 16px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--text-soft);
}
.sequence .arrow{color:var(--accent); font-size:0.9rem;}

.collection-block{padding:70px 0;}
.collection-block .eyebrow{
  font-size:0.78rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--text-soft);
  margin-bottom:16px;
}
.collection-block h2{
  font-style:italic;
  font-weight:400;
  font-size:clamp(1.9rem, 4vw, 2.6rem);
  max-width:16ch;
  margin-bottom:26px;
}
.collection-block .story-copy{max-width:none;}

/* ---------- Collection image + text layout ---------- */
.collection-flex{
  display:flex;
  gap:32px;
  align-items:flex-start;
}
.collection-flex.reverse{flex-direction:row-reverse;}
.collection-photo{
  flex:0 0 90px;
  aspect-ratio:4/5;
  border-radius:3px;
  overflow:hidden;
  background:linear-gradient(160deg, var(--accent) 0%, var(--bg-soft) 70%);
  position:relative;
}
.collection-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  position:relative;
  z-index:1;
}
.collection-flex .story-copy{flex:1; min-width:0; max-width:none;}

@media (max-width:860px){
  .collection-flex, .collection-flex.reverse{flex-direction:column;}
  .collection-photo{flex:0 0 auto; width:100%; max-width:90px;}
}

/* ---------- Minimal footer (About page) ---------- */
.footer-minimal{padding-top:24px;}

/* ---------- Topics grid (About page, 3 columns) ---------- */
.topics-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  align-items:start;
  gap:56px;
}
.topic-card{text-align:left;}
.topic-photo{
  width:114px;
  aspect-ratio:1/1;
  border-radius:3px;
  overflow:hidden;
  margin-bottom:22px;
  background:linear-gradient(160deg, var(--accent) 0%, var(--bg-soft) 70%);
}
.topic-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.topic-card .eyebrow{
  font-size:0.74rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--text-soft);
  margin-bottom:10px;
}
.topic-card h3{
  font-style:italic;
  font-weight:400;
  font-size:1.55rem;
  margin-bottom:16px;
}
.topic-card p{color:var(--text-soft); font-size:0.96rem; margin:0 0 16px;}
.topic-card .sequence{margin:4px 0 18px;}
.topic-card .sequence .step{padding:5px 12px; font-size:0.76rem;}

@media (max-width:900px){
  .topics-grid{grid-template-columns:1fr 1fr; row-gap:52px;}
}
@media (max-width:620px){
  .topics-grid{grid-template-columns:1fr; row-gap:64px;}
}

/* ---------- Sub-collections (Gallery page) ---------- */
.subcollection{
  scroll-margin-top:100px;
}
.subcollection h3{
  font-style:italic;
  font-weight:400;
  font-size:clamp(1.7rem, 3.4vw, 2.2rem);
  margin-bottom:20px;
}
.subcollection p{
  color:var(--text-soft);
  font-size:1.02rem;
  max-width:none;
  margin:0 0 40px;
}
.sequence a.step{cursor:pointer;}

/* ---------- FAQ (Contact page) ---------- */
.faq-list{
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--line);
}
.faq-item{
  padding:32px 0;
  border-bottom:1px solid var(--line);
}
.faq-item h3{
  font-style:italic;
  font-weight:400;
  font-size:1.28rem;
  margin-bottom:12px;
}
.faq-item p{
  color:var(--text-soft);
  font-size:0.98rem;
  max-width:720px;
  margin:0;
}

/* ---------- Contact page: FAQ accordion + form ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:64px;
  align-items:start;
}

.faq-list{
  display:flex;
  flex-direction:column;
  border-top:1px solid rgba(34,34,34,0.28);
}
.faq-item{
  border-bottom:1px solid rgba(34,34,34,0.28);
  padding:0;
}
.faq-item summary{
  list-style:none;
  cursor:pointer;
  padding:32px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-family:'Inter', sans-serif;
  font-weight:600;
  font-size:1.02rem;
  color:var(--text);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::marker{content:"";}
.faq-item summary::after{
  content:"+";
  font-family:'Inter', sans-serif;
  font-weight:400;
  font-size:1.3rem;
  color:var(--accent);
  flex:none;
  transition:transform 250ms ease;
}
.faq-item[open] summary::after{
  content:"–";
}
.faq-answer{
  padding:0 0 26px;
}
.faq-answer p{
  color:var(--text-soft);
  font-size:0.98rem;
  max-width:640px;
  margin:0 0 14px;
}
.faq-answer p:last-child{margin-bottom:0;}

.contact-form-wrap{
  background:var(--bg-soft);
  border-radius:5px;
  padding:40px 34px;
}
.contact-form-wrap .eyebrow{
  font-size:0.78rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--text-soft);
  margin-bottom:14px;
}
.contact-form-wrap h3{
  font-style:italic;
  font-weight:400;
  font-size:1.5rem;
  margin-bottom:26px;
}
.form-field{margin-bottom:20px;}
.form-field label{
  display:block;
  font-family:'Inter', sans-serif;
  font-size:0.82rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--text-soft);
  margin-bottom:8px;
}
.form-field input,
.form-field textarea{
  width:100%;
  font-family:'Inter', sans-serif;
  font-size:0.96rem;
  color:var(--text);
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:5px;
  padding:12px 14px;
  transition:border-color 250ms ease;
}
.form-field input:focus,
.form-field textarea:focus{
  outline:none;
  border-color:var(--btn-primary);
}
.form-field textarea{resize:vertical; min-height:120px;}
.form-note{
  font-size:0.9rem;
  margin:16px 0 0;
  min-height:1.2em;
}
.form-note-success{color:var(--btn-primary);}
.form-note-error{color:var(--accent);}

@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr; gap:56px;}
}

/* ---------- Gallery pieces with real images / captions ---------- */
.piece-frame.has-image::after{display:none;}
.piece-frame.has-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  position:relative;
  z-index:1;
}
.piece-frame.coming-soon::after{content:"coming soon";}
.piece-caption-single{
  margin-top:2px;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.piece-title-line{
  font-family:'DM Sans', sans-serif;
  font-weight:300;
  font-size:0.94rem;
  letter-spacing:0.01em;
  color:var(--text);
}
.piece-medium-line{
  font-family:'Inter', sans-serif;
  font-weight:300;
  font-size:0.82rem;
  letter-spacing:0.01em;
  color:var(--text-soft);
}

/* ---------- Painting feature (About page) ---------- */
.painting-feature{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:64px;
  align-items:start;
}
.painting-photo{
  aspect-ratio:3/4;
  border-radius:3px;
  overflow:hidden;
  background:linear-gradient(160deg, var(--accent) 0%, var(--bg-soft) 70%);
  position:sticky;
  top:100px;
}
.painting-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.painting-copy .eyebrow{
  font-size:0.78rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--text-soft);
  margin-bottom:16px;
}
.painting-copy h3{
  font-style:italic;
  font-weight:400;
  font-size:clamp(1.9rem, 4vw, 2.5rem);
  margin-bottom:28px;
  max-width:16ch;
}
.painting-copy p{
  color:var(--text-soft);
  font-size:1.02rem;
  margin:0 0 20px;
  max-width:640px;
}
.painting-copy p:first-of-type{
  color:var(--text);
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:1.2rem;
  line-height:1.4;
}

@media (max-width:820px){
  .painting-feature{grid-template-columns:1fr;}
  .painting-photo{max-width:340px; position:static;}
}

/* ---------- Books grid (Publishing section) ---------- */
.books-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:56px;
}
.book-card{text-align:left;}
.book-cover{
  aspect-ratio:1/1;
  border-radius:3px;
  overflow:hidden;
  margin-bottom:24px;
  background:var(--bg-soft);
}
.book-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.book-card h3{
  font-style:italic;
  font-weight:400;
  font-size:1.5rem;
  margin-bottom:16px;
}
.book-card p{
  color:var(--text-soft);
  font-size:0.96rem;
  margin:0 0 14px;
}

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

/* ---------- Mini gallery grid (Origins I series — 10 small pieces) ---------- */
.gallery-mini{
  grid-template-columns:repeat(5, 1fr);
  gap:18px;
}
.gallery-mini .piece-title-line{font-size:0.8rem;}
.gallery-mini .piece-medium-line{font-size:0.7rem;}

@media (max-width:900px){
  .gallery-mini{grid-template-columns:repeat(3, 1fr); gap:20px;}
}
@media (max-width:600px){
  .gallery-mini{grid-template-columns:repeat(2, 1fr); gap:20px;}
}

/* ---------- Availability status badge ---------- */
.piece-status{
  position:absolute;
  top:14px;
  left:14px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  padding:5px 13px;
  border-radius:999px;
  font-family:'Inter', sans-serif;
  font-weight:500;
  font-size:0.68rem;
  letter-spacing:0.07em;
  text-transform:uppercase;
  color:#fff;
  pointer-events:none;
  line-height:1;
}
.piece-status.sold{background:#B56F53;}
.piece-status.available{background:#7B8262;}
.piece-status.soon{background:#A89E91;}

.gallery-mini .piece-status{
  top:8px;
  left:8px;
  padding:3px 9px;
  font-size:0.56rem;
  letter-spacing:0.05em;
}

/* ---------- Newsletter signup (homepage footer) ---------- */
.newsletter-signup{
  max-width:460px;
  margin:0 auto 52px;
  text-align:center;
}
.newsletter-title{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:400;
  font-size:1.6rem;
  color:var(--text);
  margin:0 0 10px;
}
.newsletter-lede{
  color:var(--text-soft);
  font-size:0.92rem;
  margin:0 0 24px;
}
.newsletter-form{
  display:flex;
  align-items:center;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
}
.newsletter-form .btn{
  flex-shrink:0;
}
.newsletter-form input[type="email"]{
  flex:1;
  min-width:220px;
  font-family:'Inter', sans-serif;
  font-size:0.94rem;
  padding:0 16px;
  height:46px;
  border:1px solid var(--line);
  border-radius:5px;
  background:var(--bg-soft);
  color:var(--text);
  transition:border-color 250ms ease;
}
.newsletter-form input[type="email"]:focus{
  outline:none;
  border-color:var(--btn-primary);
}
.newsletter-honeypot{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  opacity:0;
}

@media (max-width:480px){
  .newsletter-form{flex-direction:column;}
  .newsletter-form input[type="email"]{width:100%;}
  .newsletter-form .btn{width:100%;}
}

/* ---------- Social icon CTA (Thank You page) ---------- */
.social-cta{
  display:flex;
  justify-content:center;
  gap:48px;
}
.social-icon-link{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  color:#B56F53;
  transition:opacity 250ms ease, transform 250ms ease;
}
.social-icon-link:hover{
  opacity:0.75;
  transform:translateY(-2px);
}
.social-icon-link svg{
  width:38px;
  height:38px;
}
.social-icon-link span{
  font-family:'Inter', sans-serif;
  font-size:0.85rem;
  letter-spacing:0.04em;
  color:var(--text);
}

@media (max-width:480px){
  .social-cta{gap:32px;}
  .social-icon-link svg{width:32px; height:32px;}
}

/* ---------- Newsletter consent text ---------- */
.newsletter-consent{
  font-size:0.78rem;
  color:var(--text-soft);
  max-width:440px;
  margin:16px auto 0;
  line-height:1.5;
}
.newsletter-consent a{border-bottom:1px solid currentColor; padding-bottom:1px;}

/* ---------- Legal pages (Privacy Policy) ---------- */
.legal-copy{max-width:760px;}
.legal-updated{
  font-size:0.85rem;
  color:var(--text-soft);
  font-style:italic;
  margin-bottom:40px;
}
.legal-copy h2{
  font-style:italic;
  font-weight:400;
  font-size:1.4rem;
  margin:44px 0 16px;
}
.legal-copy h2:first-of-type{margin-top:0;}
.legal-copy p{
  color:var(--text-soft);
  font-size:0.98rem;
  margin:0 0 18px;
}
.legal-copy ul{
  margin:0 0 18px;
  padding-left:22px;
  color:var(--text-soft);
  font-size:0.98rem;
}
.legal-copy li{margin-bottom:10px;}
.legal-copy strong{color:var(--text); font-weight:500;}

/* ---------- Cookie consent banner ---------- */
.cookie-banner{
  position:fixed;
  left:20px;
  right:20px;
  bottom:20px;
  z-index:100;
  max-width:640px;
  margin:0 auto;
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:6px;
  box-shadow:0 12px 40px rgba(34,34,34,0.16);
  padding:26px 28px;
  opacity:0;
  transform:translateY(16px);
  transition:opacity 300ms ease, transform 300ms ease;
}
.cookie-banner.visible{
  opacity:1;
  transform:translateY(0);
}
.cookie-banner-text h2{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:400;
  font-size:1.3rem;
  margin:0 0 10px;
  color:var(--text);
}
.cookie-banner-text p{
  font-family:'Inter', sans-serif;
  font-size:0.88rem;
  line-height:1.55;
  color:var(--text-soft);
  margin:0 0 18px;
}
.cookie-banner-actions{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.cookie-banner-actions .btn{
  height:42px;
  padding:0 22px;
  font-size:0.86rem;
}
.cookie-manage-link{
  background:none;
  border:none;
  padding:0;
  font-family:'Inter', sans-serif;
  font-size:0.85rem;
  color:var(--text-soft);
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
  transition:color 250ms ease;
}
.cookie-manage-link:hover{color:var(--link-hover);}

.cookie-prefs-panel{
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:12px;
}
.cookie-check{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:'Inter', sans-serif;
  font-size:0.9rem;
  color:var(--text);
  cursor:pointer;
}
.cookie-check input[type="checkbox"]{
  width:17px;
  height:17px;
  accent-color:var(--btn-primary);
}
.cookie-check input:disabled{opacity:0.6; cursor:not-allowed;}
.cookie-save-btn{
  margin-top:6px;
  align-self:flex-start;
  height:40px;
  padding:0 20px;
  font-size:0.85rem;
}

@media (max-width:600px){
  .cookie-banner{left:16px; right:16px; bottom:16px; padding:22px 20px;}
  .cookie-banner-actions{flex-direction:column; align-items:stretch;}
  .cookie-banner-actions .btn{width:100%;}
  .cookie-manage-link{align-self:center; margin-top:4px;}
}

/* ---------- Legal address / signature blocks ---------- */
.legal-address{
  color:var(--text-soft);
  font-size:0.98rem;
  line-height:1.6;
  margin:0 0 18px;
}
.legal-address strong{color:var(--text);}
.legal-signature{
  margin-top:44px;
  padding-top:24px;
  border-top:1px solid var(--line);
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  color:var(--text);
}

/* ---------- Section dividers (Gallery page) ---------- */
.nowrap-heading{
  max-width:none;
  white-space:nowrap;
}
@media (max-width:640px){
  .nowrap-heading{
    white-space:normal;
    max-width:16ch;
  }
}

.section-divider{
  max-width:1160px;
  margin:0 auto;
  padding:0 32px;
}
.section-divider hr{
  border:none;
  border-top:1px solid var(--line);
  margin:0;
}
.inline-divider{
  border:none;
  border-top:1px solid var(--line);
  margin:60px 0 0;
}

/* ---------- Tighter spacing between Notations intro and Origins ---------- */
.notations-intro{padding-bottom:30px;}
.origins-tight{padding-top:20px;}


/* ---------- Color disclaimer (Gallery page) ---------- */
.color-disclaimer{
  margin-top:32px;
  font-size:0.82rem;
  color:var(--text-soft);
  font-style:italic;
}
