/* Catherine D. Gemstones — Nossa história, the founder's story (2026-10-28). Loaded after editorial.css and pages.css
   on nossa-historia.html and zh/nossa-historia.html. The layout follows the operator's mock-up: a dark forest hero,
   four chapters (picture and text taking turns left and right, the pictures as paper cards), the brand line on dark
   green beside a real piece, three values, and a dark closing over the jaguar engraving. Chapters without a real
   photograph yet show an empty paper frame that says which photograph belongs there. */

.nh-label{margin:0 0 18px;font:500 12px/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#766b46}
.on-dark .nh-label,.nh-hero .nh-label{color:#c0b286}

/* ---- hero ---- */
.nh-hero{position:relative;isolation:isolate;overflow:clip;display:flex;align-items:center;min-height:min(820px,max(600px,92svh));
  padding:150px var(--gutter) 110px;background:var(--forest);color:var(--ivory-text)}
.nh-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:url('media/forest.webp') 70% 40%/cover}
.nh-hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(18,30,22,.92) 0%,rgba(18,30,22,.78) 38%,rgba(18,30,22,.25) 75%,rgba(18,30,22,.1) 100%),
             linear-gradient(0deg,rgba(18,30,22,.55) 0%,rgba(18,30,22,0) 35%)}
.nh-hero-copy{max-width:780px}
.nh-hero h1{margin:0;font:400 clamp(52px,5.6vw,86px)/1 var(--serif);letter-spacing:-1.6px}
.nh-hero h1 em{display:block;color:#c0b286}
.nh-hero .lede{margin:34px 0 0;max-width:30em;font-size:18px;line-height:1.75;color:#efe6d4e6}

/* ---- chapters ---- */
.nh-chapters{padding:130px var(--gutter) 40px;display:grid;gap:140px}
.nh-chapter{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(48px,7vw,110px);align-items:center;max-width:1240px;margin:0 auto;width:100%}
.nh-chapter.is-reverse .nh-photo{order:2}
.nh-photo{margin:0;padding:12px;background:#fbf8f1;box-shadow:var(--card-shadow)}
.nh-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.nh-pending{position:relative;aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;
  background:#efe8da url('media/botanical.webp') right -40px bottom -60px/62% no-repeat;outline:1px solid #c0b28659;outline-offset:-14px}
.nh-pending::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#efe8da 30%,#efe8dacc 70%,#efe8da66)}
.nh-pending>*{position:relative}
.nh-pending-what{font:italic 22px/1.3 var(--serif);color:#5b604d;max-width:16em}
.nh-pending-when{font:500 12px/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#766b46}
.nh-text h2{margin:0 0 26px;font:400 clamp(32px,3.2vw,46px)/1.12 var(--serif);letter-spacing:-.5px;color:var(--ink)}
.nh-text p:not(.nh-label){margin:0 0 16px;max-width:31em;font-size:17px;line-height:1.8;color:#3e4436}

/* ---- the brand line ---- */
.nh-quote{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(48px,7vw,110px);align-items:center;
  margin-top:120px;padding:110px max(var(--gutter),calc((100% - 1240px) / 2));background:var(--forest);color:var(--ivory-text)}
.nh-quote-media{margin:0;padding:10px;background:#fbf8f1;box-shadow:0 0 0 1px rgba(192,178,134,.16),0 36px 70px -34px rgba(0,0,0,.78);max-width:420px;justify-self:end;width:100%}
.nh-quote-media img{display:block;width:100%;height:auto}
.nh-quote-text{margin:0;font:italic 400 clamp(34px,3.4vw,52px)/1.2 var(--serif);color:var(--ivory-text)}

/* ---- values ---- */
.nh-values{padding:100px var(--gutter)}
.nh-values ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:1140px;margin:0 auto;padding:0;list-style:none}
.nh-values li{padding:8px clamp(20px,3vw,44px);text-align:center;border-left:1px solid #c0b28659}
.nh-values li:first-child{border-left:0}
.nh-icon{display:inline-flex;width:40px;height:40px;color:#766b46}
.nh-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round;stroke-linecap:round}
.nh-values h3{margin:18px 0 12px;font:400 28px/1.15 var(--serif);color:var(--ink)}
.nh-values p{margin:0 auto;max-width:20em;font-size:15px;line-height:1.7;color:#4a5143}

/* ---- closing ---- */
.nh-closing{position:relative;isolation:isolate;overflow:clip;display:flex;justify-content:center;text-align:center;padding:150px var(--gutter);background:var(--forest);color:var(--ivory-text)}
.nh-closing::before{content:"";position:absolute;inset:0;z-index:-2;background:url('media/print-study.webp') center 60%/cover;opacity:.5}
.nh-closing::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at center,rgba(24,39,29,.92) 0%,rgba(24,39,29,.75) 45%,rgba(24,39,29,.35) 100%)}
.nh-closing h2{margin:0;font:400 clamp(40px,4.4vw,64px)/1.05 var(--serif);letter-spacing:-.8px}
.nh-closing .lede{margin:24px auto 0;max-width:28em;font-size:18px;line-height:1.7;color:#efe6d4e0}
.nh-closing .text-link{margin-top:36px;color:var(--ivory-text)}

/* ---- tablet and phone ---- */
@media(max-width:900px){
  .nh-chapters{gap:90px;padding-top:90px}
  .nh-chapter{grid-template-columns:minmax(0,1fr);gap:30px}
  .nh-chapter.is-reverse .nh-photo{order:0}
  .nh-quote{grid-template-columns:minmax(0,1fr);gap:40px;margin-top:80px;padding-block:80px;text-align:center}
  .nh-quote-media{justify-self:center;max-width:300px}
  .nh-values ul{grid-template-columns:minmax(0,1fr);gap:44px}
  .nh-values li{border-left:0;padding:0}
  .nh-values li+li{padding-top:44px;border-top:1px solid #c0b28659}
}
@media(max-width:700px){
  .nh-hero{min-height:min(720px,max(560px,88svh));padding:120px 24px 70px;align-items:flex-end}
  .nh-hero::before{background-position:62% 40%}
  .nh-hero::after{background:linear-gradient(0deg,rgba(18,30,22,.95) 0%,rgba(18,30,22,.75) 50%,rgba(18,30,22,.3) 100%)}
  .nh-hero h1{font-size:46px;letter-spacing:-1px}
  .nh-hero .lede{font-size:16px;margin-top:24px}
  .nh-chapters{padding:70px 24px 20px;gap:70px}
  .nh-photo{padding:8px}
  .nh-pending{outline-offset:-10px}
  .nh-pending-what{font-size:19px}
  .nh-text h2{font-size:30px;margin-bottom:18px}
  .nh-text p:not(.nh-label){font-size:16px}
  .nh-quote{padding:70px 24px}
  .nh-quote-text{font-size:30px}
  .nh-values{padding:70px 24px}
  .nh-values h3{font-size:25px}
  .nh-closing{padding:100px 24px}
  .nh-closing h2{font-size:36px}
  .nh-closing .lede{font-size:16px}
}

/* ---- Chinese ---- */
html[lang^="zh"] .nh-label{font-family:var(--sans);font-weight:400;letter-spacing:.2em;font-size:13px;text-transform:none}
html[lang^="zh"] .nh-hero h1{font-size:clamp(46px,4.6vw,64px);line-height:1.3;letter-spacing:.08em;font-weight:300}
html[lang^="zh"] .nh-hero h1 em{font-weight:300}
html[lang^="zh"] .nh-hero .lede{font-size:21px;line-height:1.8}
html[lang^="zh"] .nh-text h2{font-size:clamp(28px,2.6vw,36px);line-height:1.4;letter-spacing:.08em;font-weight:300}
html[lang^="zh"] .nh-text p:not(.nh-label){font-weight:300;letter-spacing:.04em;line-height:1.9;max-width:30em}
html[lang^="zh"] .nh-pending-what{font:400 18px/1.5 var(--lead);color:#5b604d}
html[lang^="zh"] .nh-pending-when{text-transform:none;letter-spacing:.2em;font-size:13px}
html[lang^="zh"] .nh-quote-text{font:400 clamp(28px,2.6vw,38px)/1.6 var(--lead);letter-spacing:.06em;text-wrap:balance}
html[lang^="zh"] .nh-values h3{font-size:26px;letter-spacing:.08em;font-weight:400}
html[lang^="zh"] .nh-values p{font-weight:300;letter-spacing:.04em;line-height:1.9}
html[lang^="zh"] .nh-closing h2{letter-spacing:0}
html[lang^="zh"] .nh-closing .lede{font-size:21px;line-height:1.8;padding-left:.5em}
@media(max-width:700px){
  html[lang^="zh"] .nh-hero h1{font-size:40px;letter-spacing:.04em}
  html[lang^="zh"] .nh-hero .lede{font-size:17px}
  html[lang^="zh"] .nh-text h2{font-size:26px;letter-spacing:.04em}
  html[lang^="zh"] .nh-quote-text{font-size:24px}
  html[lang^="zh"] .nh-values h3{font-size:22px}
  html[lang^="zh"] .nh-closing .lede{font-size:17px}
}
@media(prefers-reduced-motion:reduce){.nh-chapter,.nh-quote-copy,.nh-quote-media{transition:none}}

/* ---- the passage between the chapters and the brand line: two cultures, and how the founder works ---- */
.nh-passage{padding:130px var(--gutter) 20px;text-align:center}
.nh-passage-copy{max-width:640px;margin:0 auto}
.nh-passage-copy p:not(.nh-label){margin:0 0 18px;font:italic 400 24px/1.5 var(--serif);color:#3e4436;text-wrap:balance}
.nh-passage-copy .nh-label{margin-bottom:26px}
.nh-quote-pre{margin:0 0 18px;font-size:17px;line-height:1.7;color:#d9d2bf;max-width:30em}
.nh-text b{font-weight:500}
@media(max-width:900px){.nh-quote-pre{margin-inline:auto}}
@media(max-width:700px){
  .nh-passage{padding:80px 24px 10px}
  .nh-passage-copy p:not(.nh-label){font-size:20px}
}
html[lang^="zh"] .nh-passage-copy p:not(.nh-label){font:400 20px/1.9 var(--lead);letter-spacing:0;padding-left:.5em}
html[lang^="zh"] .nh-quote-pre{font:400 19px/1.8 var(--lead);letter-spacing:0}
html[lang^="zh"] .nh-text b{font-weight:400;font-family:var(--serif)}
@media(max-width:700px){html[lang^="zh"] .nh-passage-copy p:not(.nh-label){font-size:17px}html[lang^="zh"] .nh-quote-pre{font-size:17px}}

/* ==== aesthetic check (2026-10-28, docs/ui-review-2026-10-28.html) ==== */
/* 1. the hero title keeps to two lines on wide screens: one roman, one italic */
@media(min-width:901px){
  .nh-hero-copy{max-width:min(960px,100%)}
  .nh-hero h1{font-size:clamp(52px,5vw,76px)}
  .nh-hero h1 em{white-space:nowrap}
}
/* 3. the three frames still waiting for photographs are no longer identical: each has its own engraving and place */
.nh-pending{background:#efe8da}
.nh-pending::after{content:"";position:absolute;z-index:0;pointer-events:none;background:url('media/botanical.webp') center/contain no-repeat;opacity:.9}
.nh-pending>*{z-index:2}
.nh-pending::before{z-index:1}
.nh-chapter:nth-of-type(1) .nh-pending::after{right:-30px;bottom:-50px;width:58%;height:80%}
.nh-chapter:nth-of-type(2) .nh-pending::after{left:-34px;top:-40px;width:52%;height:72%;transform:scale(-1,-1)}
.nh-chapter:nth-of-type(3) .nh-pending::after{left:50%;bottom:-70px;width:46%;height:64%;transform:translateX(-50%) rotate(-12deg)}
.nh-chapter:nth-of-type(2) .nh-pending::before{background:linear-gradient(270deg,#efe8da 30%,#efe8dacc 70%,#efe8da66)}
.nh-chapter:nth-of-type(3) .nh-pending::before{background:linear-gradient(0deg,#efe8da66 0%,#efe8dacc 30%,#efe8da 60%)}
/* 4. the three value titles share one height, so the lines under them start level */
@media(min-width:901px){.nh-values h3{min-height:2.3em;display:flex;align-items:flex-end;justify-content:center}}
/* 6. the two-cultures passage reads as one left-aligned column in the middle of the page */
.nh-passage{text-align:left}
.nh-passage-copy{max-width:34em}
.nh-passage-copy p:not(.nh-label){text-wrap:pretty}
html[lang^="zh"] .nh-passage-copy{max-width:30em}
html[lang^="zh"] .nh-passage-copy p:not(.nh-label){padding-left:0;text-wrap:pretty}
.nh-pending{overflow:hidden}
/* keep the engravings clear of the words in the middle */
.nh-chapter:nth-of-type(2) .nh-pending::after{left:-48px;top:-54px;width:40%;height:62%}
.nh-chapter:nth-of-type(3) .nh-pending::after{bottom:-120px;width:40%;height:60%}

/* 2026-10-28: the founder's portrait on the forest green band, frameless. The photo (media/story/founder-green.webp)
   has a dark green background and its edges are already blended into --forest in the file (tools/prepare_story_images.py),
   so there is no frame, line or shadow and no visible rectangle. Wider screens give it about half the band, the two
   columns in balance; phones keep it under about 40% of the screen height. */
@media(min-width:901px){.nh-quote{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);column-gap:clamp(40px,5vw,72px)}}
.nh-quote-media{padding:0;background:none;box-shadow:none;max-width:600px}
.nh-quote-media img{display:block;width:100%;height:auto}
@media(max-width:900px){.nh-quote-media{max-width:min(460px,calc(40svh * 1333 / 1180))}}
/* final (2026-10-28): on wider screens the portrait and the words grow together by about 8%, so the band has less
   empty green: the content may reach 1340px (it was 1240px), the quote and the line above it are 8% larger, and the
   columns lean a little toward the text so the Portuguese quote still keeps its two lines. Phones are unchanged. */
@media(min-width:901px){
  .nh-quote{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);padding-inline:max(var(--gutter),calc((100% - 1340px) / 2))}
  .nh-quote-media{max-width:650px}
  .nh-quote-text{font-size:clamp(34px,3.65vw,56px)}
  html[lang^="zh"] .nh-quote-text{font-size:clamp(30px,2.8vw,41px)}
  .nh-quote-pre{font-size:18px}
  html[lang^="zh"] .nh-quote-pre{font-size:20px}
}
/* 2026-10-29: on wider screens the three Chinese value lines each sit on one line. The columns keep their width and
   dividers; only the side padding is narrower (24px) and the 300px cap is lifted, so the longest line
   ("结合你的故事与风格，创造独一无二的珠宝。") fits. Narrower screens keep the natural two-line wrap. */
@media(min-width:1240px){
  html[lang^="zh"] .nh-values li{padding-inline:24px}
  html[lang^="zh"] .nh-values p{max-width:none}
}
/* the same on the Portuguese page, so "Atendimento personalizado" sits on one line like the other two titles; the
   titles keep a shared baseline under the icons (min-height on the h3, above) */
@media(min-width:1240px){html:not([lang^="zh"]) .nh-values li{padding-inline:24px}}
/* between 901 and 1239px the three columns are narrower: the side padding is 12px and the three Portuguese titles share
   one size that fits the column, so "Atendimento personalizado" stays on one line there too */
@media(min-width:901px) and (max-width:1239px){
  html:not([lang^="zh"]) .nh-values li{padding-inline:12px}
  html:not([lang^="zh"]) .nh-values h3{font-size:min(28px,calc(((100vw - 2 * var(--gutter)) / 3 - 24px) / 11.6))}
}
