/* Tobi masterclass typography and spacing, with the approved v9 full-frame layouts. */
.safari-project { padding:64px 0 80px; background:#faf8f4; }
.safari-story { max-width:1120px; margin:auto; padding:0 32px; color:#252a31; font:17px/1.65 Georgia,serif; }
.safari-story p { font:inherit; color:inherit; margin:0 0 16px; }
.safari-hero,.safari-opening-detail { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:36px; align-items:start; }
.safari-hero { padding-bottom:46px; align-items:center; }
.safari-hero > figure { width:100%; max-width:420px; justify-self:end; }
.safari-story h1 { margin:16px 0 24px; font:normal clamp(34px,5vw,56px)/1.05 Georgia,serif; letter-spacing:-.035em; }
.safari-story h2 { margin:0 0 13px; font:normal 28px/1.2 Georgia,serif; letter-spacing:-.015em; }
.safari-story figure { margin:0; min-width:0; }
.safari-photo-link { display:block; cursor:zoom-in; }
.safari-story img { display:block; width:100%; height:auto; }
.safari-story figcaption { color:#626970; margin:8px 0 0; font:13px/1.5 Arial,sans-serif; }
.safari-opening-detail { padding:0 0 38px; }
.safari-opening-detail > figure { width:100%; max-width:360px; }
.safari-preparation,.safari-step { border-top:1px solid #dcd8d1; padding:34px 0 38px; }
.safari-preparation-grid { display:grid; grid-template-columns:minmax(0,1fr) 200px; gap:40px; align-items:start; }
.safari-preparation-pictures { display:grid; grid-template-columns:minmax(0,4fr) minmax(0,3fr); gap:24px; align-items:start; margin-top:24px; }
.safari-sewing-notes { margin-top:8px; padding:12px 0 12px 18px; border-left:2px solid #b6a58e; color:#626970; font:14px/1.65 Arial,sans-serif; }
.safari-sewing-notes h3 { margin:0 0 12px; color:var(--ss-ink); font:normal 20px/1.25 Georgia,serif; }
.safari-sewing-notes p { margin:0; }
.safari-sewing-notes p + p { margin-top:14px; }
.safari-step-heading { display:grid; grid-template-columns:48px minmax(0,1fr); gap:13px; max-width:810px; margin-bottom:20px; }
.safari-step-number { color:#8a3823; font:24px/1.2 Georgia,serif; padding-top:3px; }
.safari-step-heading p:last-child { margin-bottom:0; }
.safari-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; margin:22px 0 0; }
.safari-photos--single { grid-template-columns:minmax(0,1fr); max-width:600px; }
.safari-closing { border-top:1px solid #dcd8d1; padding-top:32px; }
.safari-closing > div { max-width:810px; }
.safari-story a:focus-visible { outline:3px solid #803823; outline-offset:5px; }
.safari-story [id] { scroll-margin-top:90px; }
@media(max-width:850px) {
  .safari-preparation-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
  .safari-sewing-notes { max-width:480px; }
}
@media(max-width:700px) {
  .safari-project { padding:34px 0 50px; }
  .safari-story { padding:0 22px; }
  .safari-hero,.safari-opening-detail { grid-template-columns:minmax(0,1fr); gap:25px; }
  .safari-hero { padding-bottom:30px; }
  .safari-hero > figure { justify-self:start; }
  .safari-story h1 { max-width:13ch; font-size:43px; }
  .safari-story h2 { font-size:26px; }
  .safari-preparation,.safari-step { padding:28px 0; }
  .safari-step-heading { grid-template-columns:33px minmax(0,1fr); gap:8px; }
  .safari-photos,.safari-preparation-pictures { grid-template-columns:minmax(0,1fr); gap:25px; }
}
