/* Fitoornama editorial archives and CPT singles — v5.1 */

body.single-journal,
body.single-travel,
body.single-gallery,
body.single-work { background: var(--ivory, #f7f4ed); }

.fn-story-single { padding-top: 78px; color: var(--ink, #111); background: var(--ivory, #f7f4ed); }
.fn-story-opening { padding: clamp(58px, 8vw, 110px) 0 0; }
.fn-story-opening__copy { max-width: 1080px; }
.fn-story-opening__back {
  display: inline-block; margin-bottom: 34px; color: rgba(17,17,17,.55);
  font: 500 10px/1.4 var(--body, Inter, sans-serif); letter-spacing: .14em; text-transform: uppercase;
  transition: color .3s ease, transform .3s ease;
}
.fn-story-opening__back:hover { color: var(--forest, #2f4a42); transform: translateX(-4px); }
.fn-story-opening h1 {
  max-width: 1040px; margin: 0; font-family: var(--hi, 'Noto Serif Devanagari', serif);
  font-size: clamp(36px, 3.9vw, 58px); font-weight: 400; letter-spacing: -.025em; line-height: 1.14;
}
.fn-story-opening__dek {
  max-width: 760px; margin: 28px 0 0; color: rgba(17,17,17,.66);
  font: 400 clamp(19px, 2vw, 27px)/1.55 var(--display, 'Cormorant Garamond', serif);
}
.fn-story-opening__meta { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 30px; color: rgba(17,17,17,.48); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.fn-story-opening__meta span + span::before { content: '·'; padding-right: 28px; color: var(--gold, #b88a3d); }

.fn-story-cover { margin-top: clamp(48px, 6vw, 82px); }
.fn-story-cover__image { display: block; width: 100%; height: clamp(420px, 58vw, 760px); object-fit: cover; background: #ddd8cc; }
.single-journal .fn-story-cover__image { height: clamp(380px, 50vw, 680px); }
.single-gallery .fn-story-cover__image { height: auto; max-height: 820px; object-fit: contain; background: #151715; }
.fn-story-cover figcaption { margin-top: 12px; color: rgba(17,17,17,.48); font-size: 10px; letter-spacing: .08em; }
.fn-story-cover__link { position: relative; display: block; }
.fn-story-cover__visit { position: absolute; right: 18px; bottom: 18px; padding: 10px 14px; color: #fff; background: rgba(17,17,17,.72); backdrop-filter: blur(8px); font: 500 9px/1 var(--body, Inter, sans-serif); letter-spacing: .12em; text-transform: uppercase; transition: background .3s ease; }
.fn-story-cover__link:hover .fn-story-cover__visit { background: var(--forest, #2f4a42); }

.fn-story-body { display: grid; grid-template-columns: minmax(150px, .42fr) minmax(0, 1.58fr); gap: clamp(46px, 8vw, 130px); padding-top: clamp(70px, 9vw, 125px); padding-bottom: clamp(76px, 10vw, 140px); }
.fn-story-facts { position: sticky; top: 120px; align-self: start; border-top: 1px solid rgba(17,17,17,.16); }
.fn-story-facts p { margin: 0; padding: 17px 0; border-bottom: 1px solid rgba(17,17,17,.12); }
.fn-story-facts strong { display: block; margin-bottom: 6px; color: rgba(17,17,17,.42); font-size: 9px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.fn-story-facts span { display: block; color: rgba(17,17,17,.72); font-size: 12px; line-height: 1.55; }
.fn-story-content { width: min(100%, 760px); }
.fn-story-content > :first-child { margin-top: 0; }
.fn-story-content p, .fn-story-content li { color: rgba(17,17,17,.76); font: 400 clamp(17px, 1.45vw, 20px)/1.9 var(--display, 'Cormorant Garamond', serif); }
.fn-story-content p { margin: 0 0 1.6em; }
.fn-story-content h2 { margin: 2em 0 .65em; font: 400 clamp(32px, 3.6vw, 50px)/1.15 var(--hi, serif); }
.fn-story-content h3 { margin: 1.8em 0 .6em; font: 400 clamp(25px, 2.7vw, 36px)/1.2 var(--hi, serif); }
.fn-story-content img { width: 100%; height: auto; margin-block: 1.2em; }
.fn-story-content .wp-block-gallery { margin: clamp(42px, 6vw, 76px) 0; gap: clamp(8px, 1.2vw, 18px); }
.fn-story-content blockquote, .fn-story-pullquote { margin: 1.8em 0; padding: 10px 0 10px clamp(24px, 4vw, 48px); border-left: 2px solid var(--gold, #b88a3d); color: var(--forest, #2f4a42); font: 400 clamp(28px, 3.4vw, 46px)/1.4 var(--hi, serif); }
.fn-story-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; padding-block: 34px; border-top: 1px solid rgba(17,17,17,.16); }
.fn-story-nav > div:last-child { text-align: right; }
.fn-story-nav a { font-family: var(--display, serif); font-size: clamp(18px, 2vw, 26px); transition: color .3s ease; }
.fn-story-nav a:hover { color: var(--gold, #b88a3d); }
.fn-published-work { margin: 0 0 clamp(34px, 5vw, 60px)!important; }
.fn-published-work a { display: inline-flex; align-items: center; gap: 12px; padding: 13px 20px; color: #fff; background: var(--forest, #2f4a42); font: 500 10px/1 var(--body, Inter, sans-serif); letter-spacing: .13em; text-transform: uppercase; transition: background .3s ease, color .3s ease; }
.fn-published-work a:hover { color: var(--ink, #111); background: var(--gold, #b88a3d); }

/* Archive refinements: real featured images, quieter proportions, distinct rhythms. */
.fn-featured-lead__media img, .fn-featured-lead__image { width: 100%; height: 100%; object-fit: cover; }
.fn-archive-section--gallery .fn-page-card__body > p:not(.fn-page-card__meta) { display: none; }
.fn-archive-section--gallery .fn-page-card h2 { color: var(--ink, #111); }
.fn-archive-section--work .fn-page-card__body { display: grid; grid-template-columns: 1fr auto; column-gap: 18px; }
.fn-archive-section--work .fn-page-card__meta, .fn-archive-section--work .fn-page-card__body > p { grid-column: 1 / -1; }
.fn-archive-section--work .fn-text-link { align-self: end; }
.fn-archive-section .fn-page-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fn-archive-section .fn-page-grid > .fn-page-card,
.fn-archive-section .fn-page-grid--gallery > .fn-page-card:nth-child(n) { grid-column: auto; padding-top: 0; }
.fn-archive-section .fn-page-card { display: flex; min-height: 100%; flex-direction: column; }
.fn-archive-section .fn-page-card__media,
.fn-archive-section .fn-page-grid--gallery .fn-page-card__media,
.fn-archive-section .fn-page-grid--work .fn-page-card__media { aspect-ratio: 4 / 3; }
.fn-archive-section .fn-page-card__body { display: flex; flex: 1; flex-direction: column; }
.fn-archive-section .fn-page-card__body .fn-text-link { margin-top: auto; padding-top: 18px; }
.fn-featured-lead--text { grid-template-columns: minmax(0, 780px); }
.fn-featured__slide--text { background: var(--ivory, #f7f4ed); }
.fn-featured__slide--text .fn-featured__image { display: none; }
.fn-gallery__item--text { min-height: 260px; background: var(--forest, #2f4a42); }

/* Inner-page scale follows the quieter homepage hierarchy. */
.fn-inner-page .fn-editorial-opening h2 { font-size: clamp(29px, 3.1vw, 44px); line-height: 1.12; }
.fn-inner-page .fn-large-copy { font-size: clamp(18px, 1.55vw, 23px); line-height: 1.65; }
.fn-inner-page .fn-editorial-opening__copy > p:not(.fn-large-copy):not(.fn-hi-opening) { font-size: 13.5px; line-height: 1.75; }
.fn-hi-opening { margin: 0; color: var(--ink, #111); font: 400 clamp(21px, 2vw, 29px)/1.62 var(--hi, 'Noto Serif Devanagari', serif); }
.fn-dastaan .fn-editorial-opening { padding-bottom: clamp(34px, 4vw, 52px); }
.fn-dastaan .fn-editorial-opening + .fn-page-section { padding-top: clamp(34px, 4vw, 52px); }
.fn-inner-page .fn-editorial-opening { padding-bottom: clamp(42px, 4.8vw, 68px); }
.fn-inner-page .fn-editorial-opening + .fn-featured-section,
.fn-inner-page .fn-services-section + .fn-featured-section { padding-top: clamp(42px, 4.8vw, 68px); }
.fn-featured-section, .fn-selected-section, .fn-archive-section { padding-top: clamp(48px, 5vw, 72px); }
.fn-selected-section { padding-bottom: clamp(48px, 5vw, 72px); }
.fn-archive-section { padding-bottom: clamp(52px, 6vw, 82px); }
.fn-archive-section .fn-page-grid { gap: clamp(28px, 3vw, 42px) clamp(18px, 2vw, 28px); }

/* Four calm, readable cards per view; three on medium screens. */
.fn-selected-carousel { grid-auto-columns: calc((100% - (2 * clamp(20px,2.5vw,36px))) / 3); }
.fn-selected-carousel .fn-page-card__media { aspect-ratio: 4 / 3; }
.fn-selected-carousel.is-marquee { scroll-snap-type: none; }

/* One circular translucent control language on section pages and homepage. */
.fn-carousel-controls { gap: 8px; }
.fn-carousel-controls button,
.fn-featured__controls button {
  display: inline-grid; place-items: center; width: 40px; height: 40px; padding: 0;
  color: var(--ink, #111); border: 0; border-radius: 50%;
  background: rgba(247,244,237,.68); box-shadow: 0 5px 22px rgba(17,17,17,.1);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  font-size: 16px; line-height: 1; transition: color .3s ease, background .3s ease, transform .3s ease;
}
.fn-carousel-controls button:hover,
.fn-carousel-controls button:focus-visible,
.fn-featured__controls button:hover,
.fn-featured__controls button:focus-visible { color: #fff; background: rgba(47,74,66,.9); transform: translateY(-2px); }

/* A real ribbon, intentionally much shorter than the footer. */
.fn-next-chapter__link { display:grid!important; height:58px!important; min-height:58px!important; grid-template-columns:minmax(0,1fr) auto!important; gap:clamp(16px,3vw,40px)!important; align-items:center; padding-block:0!important; }
.fn-next-chapter__intro { display: none!important; }
.fn-next-chapter__destination { display:flex; min-width:0; align-items:center; gap:clamp(10px,1.5vw,20px); }
.fn-next-chapter__prompt { color:rgba(255,255,255,.58); font:500 7px/1 var(--body,Inter,sans-serif); letter-spacing:.18em; }
.fn-next-chapter__title { color:#fff!important; font-size:clamp(18px,1.7vw,24px)!important; transition:color .3s ease,transform .3s ease; }
.fn-next-chapter__label { color:rgba(255,255,255,.78)!important; font-size:8px; opacity:1; transition:color .3s ease; }
.fn-next-chapter__label b { display:inline-block; color:var(--gold,#b88a3d)!important; margin-left:7px; transition:transform .3s ease; }
.fn-next-chapter__link:hover .fn-next-chapter__title { color:var(--gold,#b88a3d)!important; transform:translateX(4px); }
.fn-next-chapter__link:hover .fn-next-chapter__label { color:#fff!important; }
.fn-next-chapter__link:hover .fn-next-chapter__label b { transform:translateX(4px); }

/* One-line capability rail; touch-scrollable when the viewport is narrow. */
.fn-service-tags { width:100%; flex-wrap: nowrap!important; justify-content:space-between; gap: 7px!important; overflow-x: auto; scrollbar-width: none; }
.fn-service-tags::-webkit-scrollbar { display: none; }
.fn-service-tags span { flex: 0 0 auto; padding: 9px 10px!important; font-size: 8px!important; white-space: nowrap; }

/* Archive is a compact four-column editorial index. */
.fn-archive-section .fn-page-grid { grid-template-columns: repeat(4,minmax(0,1fr)); align-items:start; grid-auto-flow:row; }
.fn-archive-section .fn-page-card { min-height:0; align-self:start; }
.fn-archive-section .fn-page-card__body { min-height:0; }

/* Related content is explicit and compact on every single entry. */
.fn-related { padding-top:clamp(48px,6vw,82px); padding-bottom:clamp(48px,6vw,82px); border-top:1px solid rgba(17,17,17,.16); }
.fn-related__heading { margin-bottom:28px; }
.fn-related__heading h2 { margin:0; font:400 clamp(28px,3vw,42px)/1.1 var(--display,'Cormorant Garamond',serif); }
.fn-related__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(18px,2.5vw,34px); }
.fn-related__media { display:block; aspect-ratio:4/3; overflow:hidden; margin-bottom:16px; }
.fn-related__image { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.22,1,.36,1); }
.fn-related__card:hover .fn-related__image { transform:scale(1.035); }
.fn-related__card p { margin:0 0 8px; color:rgba(17,17,17,.45); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.fn-related__card h3 { margin:0; font:400 clamp(20px,2vw,28px)/1.25 var(--hi,serif); }
.fn-related__card h3 a:hover { color:var(--forest,#2f4a42); }

/* Astra must not recolour editorial links blue. */
body:not(.home) .fn-page-card h2 a,
body:not(.home) .fn-featured-lead h3 a,
body:not(.home) .fn-related__card h3 a,
body:not(.home) .fn-story-nav a { color:var(--ink,#111)!important; }
body:not(.home) .fn-page-card:hover h2 a,
body:not(.home) .fn-featured-lead h3 a:hover,
body:not(.home) .fn-related__card h3 a:hover { color:var(--forest,#2f4a42)!important; }

/* A single category-heading language with a green editorial bar. */
.fn-section-heading--plain h2,
.fn-carousel-head h2 { position:relative; padding-left:18px; font-family:var(--display,'Cormorant Garamond',serif); }
.fn-section-heading--plain h2::before,
.fn-carousel-head h2::before { position:absolute; top:.12em; bottom:.12em; left:0; width:3px; background:var(--forest,#2f4a42); content:''; border-radius:2px; }
.fn-section-heading--plain { margin-bottom:clamp(32px,4vw,52px); padding-bottom:24px; border-bottom:1px solid rgba(47,74,66,.4); }
.fn-section-heading--plain h2 { margin:0; font-size:clamp(32px,3.5vw,52px); font-weight:400; line-height:1.08; }

/* Dastaan alignment and brand-colour details. */
.fn-dastaan .fn-editorial-opening__grid { grid-template-columns:minmax(120px,.34fr) minmax(0,1.66fr); justify-items:stretch; text-align:left; }
.fn-dastaan .fn-section-index { padding-top:12px; text-align:left; }
.fn-dastaan .fn-editorial-opening__copy { margin-inline:auto; text-align:center; }
.fn-dastaan .fn-hi-opening { text-align:center; }
.fn-page-band--paper .fn-quote-stage blockquote { padding-left:clamp(18px,2vw,30px); border-left:4px solid var(--forest,#2f4a42); }
.fn-dastaan .fn-section-heading--split { border-bottom-color:var(--forest,#2f4a42); }
@media(min-width:1050px) {
 .fn-dastaan .fn-closing-cta p:not(.fn-eyebrow) { max-width:none; white-space:nowrap; font-size:13px; }
}

/* Stronger inner-page reveal choreography, matching the homepage movement. */
body:not(.home) .fn-reveal { opacity:0; filter:blur(5px); transform:translateY(38px) scale(.995); transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .95s cubic-bezier(.22,1,.36,1),filter .9s ease; }
body:not(.home) .fn-reveal.is-visible { opacity:1; filter:none; transform:none; }
body:not(.home) .fn-page-grid .fn-page-card:nth-child(4n+2),
body:not(.home) .fn-selected-carousel .fn-page-card:nth-child(3n+2) { transition-delay:.08s; }
body:not(.home) .fn-page-grid .fn-page-card:nth-child(4n+3),
body:not(.home) .fn-selected-carousel .fn-page-card:nth-child(3n+3) { transition-delay:.16s; }
body:not(.home) .fn-page-grid .fn-page-card:nth-child(4n+4) { transition-delay:.24s; }

/* Homepage and sticky social icons share the brand-green hover. */
.fn-hero__social a:hover,
.fn-hero__social a:focus-visible { color:#fff!important; opacity:1; }
.fn-nav__social a:hover,
.fn-nav__social a:focus-visible { color:var(--ink,#111)!important; opacity:1; }
.fn-hero__social svg,
.fn-nav__social svg { fill:none!important; stroke:currentColor!important; }
.fn-hero__social svg .fill,
.fn-hero__social svg path:not(.fill-ivory),
.fn-nav__social svg .fill,
.fn-nav__social svg path:not(.fill-ivory) { fill:currentColor!important; stroke:none!important; }
.fn-hero__social svg .fill-ivory,
.fn-nav__social svg .fill-ivory { fill:var(--ivory,#f7f4ed)!important; stroke:none!important; }

/* Parent and child back-to-top variants. */
#ast-scroll-top,
.ast-scroll-top-icon,
.back-to-top { color:#fff!important; background:var(--forest,#2f4a42)!important; border-color:var(--forest,#2f4a42)!important; }
#ast-scroll-top:hover,
.ast-scroll-top-icon:hover,
.back-to-top:hover { color:var(--ink,#111)!important; background:var(--gold,#b88a3d)!important; }

/* A clearer Mulaqat submit action. */
.fn-contact-form button { display:inline-flex; align-items:center; gap:10px; margin-top:14px; padding:13px 20px; border:1px solid var(--forest,#2f4a42); border-radius:999px; color:#fff; background:var(--forest,#2f4a42); transition:color .3s ease,background .3s ease,transform .3s ease; }
.fn-contact-form button:hover { color:var(--ink,#111); background:var(--gold,#b88a3d); border-color:var(--gold,#b88a3d); transform:translateY(-2px); }

/* Dastaan statement stays on one line where the viewport permits. */
@media (min-width:1100px) {
 .fn-page-band--paper .fn-quote-stage { max-width:1400px; }
 .fn-page-band--paper .fn-quote-stage blockquote { max-width:none; white-space:nowrap; font-size:clamp(24px,2.6vw,38px); }
}

/* Tasveerkhana singles let photographs lead. */
.single-gallery .fn-story-cover { width: min(calc(100% - 32px), 1600px); }
.single-gallery .fn-story-cover__image { width: 100%; max-height: 88svh; }
.single-gallery .fn-story-body { width: min(calc(100% - 48px), 1500px); grid-template-columns: minmax(140px,.25fr) minmax(0,1.75fr); gap: clamp(34px,5vw,78px); }
.single-gallery .fn-story-content { width: 100%; max-width: none; }
.single-gallery .fn-story-content .wp-block-gallery { width: 100%; }

/* Subtle chapter continuity, echoing the homepage dividers. */
.fn-inner-page > section:not(.fn-page-hero):not(.fn-next-chapter) { isolation: isolate; }
.fn-inner-page > section:not(.fn-page-hero):not(.fn-next-chapter) + section:not(.fn-next-chapter)::before { content: ''; position: absolute; top: 0; left: 50%; width: min(82%, 1180px); height: 1px; background: linear-gradient(90deg, transparent, rgba(184,138,61,.38), transparent); transform: translateX(-50%) scaleX(.4); transform-origin: center; transition: transform 1.2s cubic-bezier(.22,1,.36,1); }
.fn-inner-page > section.is-visible + section::before,
.fn-inner-page > section + section.is-visible::before { transform: translateX(-50%) scaleX(1); }

@media (max-width: 820px) {
  .fn-story-single { padding-top: 68px; }
  .fn-story-opening { padding-top: 46px; }
  .fn-story-opening__back { margin-bottom: 24px; }
  .fn-story-opening h1 { font-size: clamp(31px, 7.4vw, 44px); }
  .fn-story-cover { width: 100%; margin-top: 38px; }
  .fn-story-cover__image, .single-journal .fn-story-cover__image { height: min(68svh, 540px); }
  .single-gallery .fn-story-cover__image { height: auto; }
  .fn-story-body { grid-template-columns: 1fr; gap: 48px; }
  .single-gallery .fn-story-body { width: min(calc(100% - 40px), 1500px); grid-template-columns: 1fr; }
  .fn-story-facts { position: static; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 20px; }
  .fn-archive-section .fn-page-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .fn-selected-carousel { grid-auto-columns: calc((100% - 24px) / 2); }
  .fn-next-chapter__link { height:58px!important; min-height:58px!important; }
  .fn-dastaan .fn-editorial-opening__grid { grid-template-columns:1fr; gap:24px; }
  .fn-dastaan .fn-section-index { padding-top:0; text-align:left; }
}

@media (max-width: 560px) {
  .fn-story-opening__meta span + span::before { padding-right: 10px; }
  .fn-story-opening__meta { gap: 8px 10px; }
  .fn-story-body { padding-top: 54px; padding-bottom: 70px; }
  .fn-story-facts { grid-template-columns: 1fr; }
  .fn-story-nav { grid-template-columns: 1fr; }
  .fn-story-nav > div:last-child { text-align: left; }
  .fn-archive-section .fn-page-grid { grid-template-columns: 1fr; }
  .fn-selected-carousel { grid-auto-columns: 82%; }
  .fn-carousel-controls button, .fn-featured__controls button { width: 36px; height: 36px; }
  .fn-related__grid { grid-template-columns:1fr; }
  .fn-next-chapter__prompt { display:none; }
  .fn-next-chapter__link { grid-template-columns:minmax(0,1fr) auto!important; }
}

/* Final category-heading alignment: same grid start as Featured, no accent bar. */
.fn-section-heading--split h2::before,
.fn-section-heading--plain h2::before,
.fn-carousel-head h2::before { content:none!important; }
.fn-section-heading--plain h2,
.fn-carousel-head h2 { padding-left:0; }
.fn-section-heading--plain { display:grid; grid-template-columns:.45fr 1.55fr; gap:clamp(40px,8vw,140px); align-items:end; }
.fn-section-heading--plain .fn-heading-spacer { grid-column:1; }
.fn-section-heading--plain h2 { grid-column:2; }
.fn-carousel-head { display:grid; grid-template-columns:.45fr 1.55fr auto; gap:clamp(24px,5vw,80px); align-items:end; }
.fn-carousel-head .fn-heading-spacer { grid-column:1; }
.fn-carousel-head h2 { grid-column:2; }
.fn-carousel-controls { grid-column:3; }
.fn-carousel-head { padding-bottom:32px; border-bottom:1px solid rgba(17,17,17,.16); }

/* Introductory copy is centred while its chapter index remains in place. */
.fn-inner-page .fn-editorial-opening__copy { text-align:center; }
.fn-inner-page .fn-editorial-opening__copy > * { margin-left:auto; margin-right:auto; }

/* One predictable archive image frame regardless of source dimensions. */
.fn-archive-section .fn-page-card__media { display:block; width:100%; aspect-ratio:4/3!important; overflow:hidden; }
.fn-archive-section .fn-page-card__media img { display:block; width:100%!important; height:100%!important; object-fit:cover!important; object-position:center; }

/* Khat spacing and a footer-attached chapter ribbon. */
.fn-khat-stage__inner > small { display:block; margin:18px auto 0; line-height:1.6; }
.fn-khat .fn-khat-form { margin-top:22px; }
.fn-khat .fn-khat-stage { margin-bottom:0!important; }
.fn-khat .fn-next-chapter { margin:0!important; }
.fn-khat + .fn-footer, .fn-khat ~ .fn-footer { margin-top:0!important; }

@media(max-width:720px) {
 .fn-section-heading--plain { grid-template-columns:1fr; gap:0; }
 .fn-section-heading--plain .fn-heading-spacer { display:none; }
 .fn-section-heading--plain h2 { grid-column:1; }
 .fn-carousel-head { grid-template-columns:1fr auto; gap:18px; }
 .fn-carousel-head .fn-heading-spacer { display:none; }
 .fn-carousel-head h2 { grid-column:1; }
 .fn-carousel-controls { grid-column:2; }
}

/* v5.3.2 — definitive centred chapter openings. */
.fn-inner-page .fn-editorial-opening__grid {
 position:relative!important; display:block!important; width:min(calc(100% - (2 * var(--gutter,24px))),var(--max,1360px));
}
.fn-inner-page .fn-editorial-opening .fn-section-index {
 position:absolute; top:10px; left:0; width:clamp(110px,16vw,210px); padding:0; text-align:left;
}
.fn-inner-page .fn-editorial-opening__copy {
 width:min(76%,820px); max-width:820px; margin-inline:auto!important; text-align:center!important;
}
.fn-inner-page .fn-editorial-opening h2,
.fn-inner-page .fn-hi-opening {
 font-size:clamp(21px,2vw,29px)!important; font-weight:400; line-height:1.62!important;
}
.fn-inner-page .fn-editorial-opening__copy > p:not(.fn-large-copy):not(.fn-hi-opening) {
 max-width:720px; margin-left:auto; margin-right:auto;
}

/* Curated, Archive and Related use the Featured index component exactly. */
.fn-carousel-head.fn-section-heading--split,
.fn-related__heading.fn-section-heading--split { position:relative; display:grid; grid-template-columns:.45fr 1.55fr; gap:clamp(40px,8vw,140px); align-items:end; }
.fn-carousel-head .fn-carousel-controls { position:absolute; right:0; bottom:24px; }
.fn-related__heading { margin-bottom:clamp(32px,4vw,52px); padding-bottom:32px; }
.fn-related__heading h2 { margin:0; font-size:clamp(32px,3.5vw,52px); font-weight:400; line-height:1.08; }

/* Khat chapter ribbon must remain visible and physically touch the footer. */
main.fn-khat { margin:0!important; padding-bottom:0!important; }
main.fn-khat .fn-next-chapter { display:block!important; width:100%; margin:0!important; color:#fff!important; background:var(--forest,#2f4a42)!important; visibility:visible!important; opacity:1!important; }
main.fn-khat .fn-next-chapter__link { display:grid!important; color:#fff!important; visibility:visible!important; overflow:hidden; }
main.fn-khat .fn-next-chapter__destination { min-width:0; color:#fff!important; }
main.fn-khat .fn-next-chapter__title { display:block!important; overflow:hidden; color:#fff!important; text-overflow:ellipsis; white-space:nowrap; }
main.fn-khat .fn-next-chapter__label { display:block!important; color:#fff!important; white-space:nowrap; }
main.fn-khat + footer.fn-footer { margin-top:0!important; }

@media(max-width:760px) {
 .fn-inner-page .fn-editorial-opening__grid { width:min(calc(100% - 40px),var(--max,1360px)); }
 .fn-inner-page .fn-editorial-opening .fn-section-index { position:static; width:auto; margin-bottom:22px; text-align:left; }
 .fn-inner-page .fn-editorial-opening__copy { width:100%; }
 .fn-carousel-head.fn-section-heading--split,
 .fn-related__heading.fn-section-heading--split { grid-template-columns:1fr; gap:18px; }
 .fn-carousel-head .fn-carousel-controls { right:0; bottom:22px; }
 .fn-related__heading .fn-eyebrow { margin-bottom:0; }
}

/* v5.4.1 — final reading scale and restored introduction character. */
.fn-story-opening h1 {
 max-width:960px!important;
 font-size:clamp(34px,4.25vw,58px)!important;
 line-height:1.08!important;
}
.fn-featured-lead h3 { font-size:clamp(27px,3vw,42px)!important; line-height:1.12!important; }
.fn-page-card h2 { font-size:clamp(20px,1.75vw,25px)!important; line-height:1.25!important; }
.fn-related__heading h2 {
 max-width:740px;
 font-size:clamp(24px,2.5vw,36px)!important;
 line-height:1.35!important;
}
.fn-related__card h3 { font-size:clamp(18px,1.6vw,23px)!important; line-height:1.28!important; }

.fn-story-content { width:min(100%,720px); }
.fn-story-content p,
.fn-story-content li {
 color:#0f1110!important;
 font-family:'Inter','Noto Sans Devanagari',system-ui,sans-serif!important;
 font-size:clamp(16.5px,1.3vw,18.5px)!important;
 line-height:1.88!important;
 letter-spacing:.006em;
}

/* Keep the earlier minimal display face; make both English paragraphs equal. */
.fn-inner-page:not(.fn-dastaan) .fn-editorial-opening__copy p,
.fn-inner-page:not(.fn-dastaan) .fn-editorial-opening__copy .fn-large-copy {
 color:rgba(17,17,17,.72)!important;
 font-family:var(--display,'Cormorant Garamond',serif)!important;
 font-size:clamp(18px,1.55vw,23px)!important;
 font-weight:400!important;
 line-height:1.65!important;
 letter-spacing:0;
}

/* Six balanced homepage photo-story tiles. */
.fn-gallery__grid { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-flow:row; }
.fn-gallery__grid .fn-gallery__item,
.fn-gallery__grid .fn-gallery__item--wide {
 grid-column:auto!important;
 min-height:clamp(300px,30vw,410px)!important;
}

/* Supplied hand-written Lottie mark; static PNG remains the fallback. */
.fn-hero__logo { position:relative; min-height:clamp(112px,15.4vw,188px); }
.fn-hero__lottie {
 position:absolute!important;
 z-index:2;
 top:calc(50% + clamp(18px,2.5vw,35px)); left:50%;
 display:block!important;
 width:127%;
 aspect-ratio:1536/1024;
 opacity:0;
 pointer-events:none;
 transform:translate(-50%,-50%);
 transition:opacity .25s ease;
}
.fn-hero__lottie svg { display:block; width:100%!important; height:100%!important; overflow:visible; }
.fn-hero__logo.has-lottie .fn-hero__lottie { opacity:1; }
.fn-hero__logo.has-lottie .fn-hero__logo-static { opacity:0; }
.fn-hero__logo-static { transition:opacity .2s ease; }

@media(max-width:760px) {
 .fn-story-opening h1 { font-size:clamp(31px,10vw,44px)!important; }
 .fn-gallery__grid { grid-template-columns:1fr!important; }
 .fn-gallery__grid .fn-gallery__item { min-height:330px!important; }
 .fn-inner-page:not(.fn-dastaan) .fn-editorial-opening__copy p,
 .fn-inner-page:not(.fn-dastaan) .fn-editorial-opening__copy .fn-large-copy { font-size:19px!important; }
}

@media(prefers-reduced-motion:reduce) {
 .fn-hero__lottie { display:none!important; }
 .fn-hero__logo-static { opacity:1!important; }
}

/* v5.4 — real-content editorial refinements. */
.fn-story-content p,
.fn-story-content li {
 color:#111!important;
 font-family:var(--body,'Inter','Noto Serif Devanagari',sans-serif)!important;
 font-size:clamp(16px,1.25vw,18px)!important;
 font-weight:400!important;
 line-height:1.82!important;
}
.fn-story-content a { color:var(--forest,#2f4a42); text-decoration-thickness:1px; text-underline-offset:3px; }
.fn-story-content h2,
.fn-story-content h3,
.fn-story-content h4 {
 color:#111;
 font-family:var(--body,'Inter','Noto Serif Devanagari',sans-serif)!important;
 font-weight:600!important;
 line-height:1.32!important;
}

/* All English introduction paragraphs share one readable system. */
.fn-inner-page:not(.fn-dastaan) .fn-editorial-opening__copy p {
 max-width:760px!important;
 margin-left:auto!important;
 margin-right:auto!important;
 color:rgba(17,17,17,.76)!important;
 font-family:var(--body,'Inter',sans-serif)!important;
 font-size:clamp(16px,1.35vw,18px)!important;
 font-weight:400!important;
 line-height:1.72!important;
}
.fn-inner-page:not(.fn-dastaan) .fn-editorial-opening__copy p + p { margin-top:16px; }

/* Nine-image mosaic: three wide anchors and dense filling prevent dead space. */
.fn-gallery__grid { grid-auto-flow:dense; }
.fn-gallery__grid .fn-gallery__item { min-height:clamp(280px,28vw,390px); }
.fn-gallery__grid .fn-gallery__item--wide { min-height:clamp(360px,38vw,520px); }

/* Metadata must stay compact and single-purpose on listing cards. */
.fn-page-card__meta { display:flex; flex-wrap:wrap; gap:5px 8px; }
.fn-page-card__meta span { flex:0 0 auto; }

@media(max-width:760px) {
 .fn-gallery__grid { grid-template-columns:1fr!important; }
 .fn-gallery__grid .fn-gallery__item--wide { grid-column:auto; }
 .fn-inner-page:not(.fn-dastaan) .fn-editorial-opening__copy p { font-size:16px!important; }
}

@media (prefers-reduced-motion: reduce) {
  .fn-story-opening__back, .fn-story-nav a { transition: none; }
  body:not(.home) .fn-reveal { opacity:1; filter:none; transform:none; transition:none; }
}

/* v5.3.3 — final chapter and project-card refinements. */
.fn-dastaan .fn-editorial-opening__copy {
 width:min(76%,820px)!important; margin-inline:auto!important; text-align:center!important;
}
.fn-dastaan .fn-hi-opening {
 max-width:760px; margin-inline:auto!important; font-size:clamp(18px,1.65vw,24px)!important; line-height:1.7!important; text-align:center!important;
}
.fn-carousel-head h2,
.fn-archive-section .fn-section-heading h2 {
 max-width:760px; font-family:var(--hi,'Noto Serif Devanagari',serif); font-size:clamp(24px,2.6vw,38px); line-height:1.35;
}

/* The inner Khat page shares a class name with the homepage section. Reset
   those broad small-element rules inside the chapter ribbon. */
main.fn-khat { padding-bottom:0!important; }
main.fn-khat > .fn-next-chapter { margin:0!important; padding:0!important; text-align:left!important; }
main.fn-khat > .fn-next-chapter .fn-next-chapter__link { height:58px!important; min-height:58px!important; margin:0 auto!important; padding-block:0!important; }
main.fn-khat > .fn-next-chapter small.fn-next-chapter__prompt {
 display:inline-block!important; margin:0!important; color:rgba(255,255,255,.58)!important; line-height:1!important;
}
main.fn-khat > .fn-next-chapter .fn-next-chapter__title,
main.fn-khat > .fn-next-chapter .fn-next-chapter__label { margin:0!important; visibility:visible!important; opacity:1!important; }

@media(max-width:760px) {
 .fn-dastaan .fn-editorial-opening__copy { width:100%!important; }
 .fn-dastaan .fn-hi-opening { font-size:19px!important; line-height:1.65!important; }
 .fn-carousel-head h2, .fn-archive-section .fn-section-heading h2 { padding-right:72px; font-size:24px; }
}

/* v5.4.2 — definitive intro typography and complete animated wordmark. */
.fn-inner-page .fn-editorial-opening__copy p,
.fn-inner-page .fn-editorial-opening__copy .fn-large-copy {
 max-width:760px!important;
 margin-left:auto!important;
 margin-right:auto!important;
 color:rgba(17,17,17,.72)!important;
 font-family:var(--display,'Cormorant Garamond',serif)!important;
 font-size:clamp(18px,1.55vw,23px)!important;
 font-weight:400!important;
 line-height:1.65!important;
 letter-spacing:0!important;
 text-align:center!important;
}
.fn-inner-page .fn-editorial-opening__copy p + p { margin-top:16px!important; }
.fn-inner-page .fn-editorial-opening__copy .fn-hi-opening {
 font-family:var(--hi,'Noto Serif Devanagari',serif)!important;
 font-size:clamp(18px,1.55vw,23px)!important;
 line-height:1.68!important;
}

.fn-hero__nukta {
 position:absolute;
 z-index:4;
 display:block;
 aspect-ratio:1;
 border-radius:50%;
 opacity:0;
 pointer-events:none;
}
.fn-hero__nukta--green {
 top:66%; left:2.5%; width:3%;
 background:#184423;
}
.fn-hero__nukta--gold {
 top:39%; left:32.7%; width:2.5%;
 background:#c3993f;
}
.fn-hero__logo.has-lottie .fn-hero__nukta--green {
 animation:fnHeroNuktaPop .55s cubic-bezier(.22,1.6,.4,1) 4.8s forwards,fnHeroNuktaFloat 3.8s ease-in-out 5.55s infinite;
}
.fn-hero__logo.has-lottie .fn-hero__nukta--gold {
 animation:fnHeroNuktaPop .55s cubic-bezier(.22,1.6,.4,1) 5.25s forwards,fnHeroNuktaFloatGold 4.2s ease-in-out 6s infinite;
}
@keyframes fnHeroNuktaPop {
 0%{opacity:0;transform:translate(-50%,-50%) scale(0)}
 65%{opacity:1;transform:translate(-50%,-50%) scale(1.3)}
 100%{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
@keyframes fnHeroNuktaFloat {
 0%,100%{opacity:1;transform:translate(-50%,-50%) translate(0,0) scale(1)}
 50%{opacity:.88;transform:translate(-50%,-50%) translate(0,-5px) scale(1.1)}
}
@keyframes fnHeroNuktaFloatGold {
 0%,100%{opacity:1;transform:translate(-50%,-50%) translate(0,0) scale(1)}
 50%{opacity:.86;transform:translate(-50%,-50%) translate(3px,-4px) scale(1.12)}
}

@media(max-width:760px) {
 .fn-inner-page .fn-editorial-opening__copy p,
 .fn-inner-page .fn-editorial-opening__copy .fn-large-copy,
 .fn-inner-page .fn-editorial-opening__copy .fn-hi-opening { font-size:19px!important; }
}

@media(prefers-reduced-motion:reduce) {
 .fn-hero__nukta { display:none!important; }
}

/* Start visually blank: never flash the completed fallback before frame zero. */
@media(prefers-reduced-motion:no-preference) {
 .fn-hero__logo--animated .fn-hero__logo-static { opacity:0!important; }
 .fn-hero__logo--animated.is-lottie-failed .fn-hero__logo-static { opacity:1!important; }
 .fn-hero__logo--animated.is-lottie-failed .fn-hero__lottie,
 .fn-hero__logo--animated.is-lottie-failed .fn-hero__nukta { display:none!important; }
}

/* v5.4.5 — original single-stroke wordmark: blank start, continuous draw. */
.fn-hero__drawn-logo {
 position:absolute;
 z-index:3;
 top:calc(50% + clamp(18px,2.5vw,35px));
 left:50%;
 display:block;
 width:127%;
 aspect-ratio:1536/1024;
 pointer-events:none;
 transform:translate(-50%,-50%);
}
.fn-hero__drawn-logo svg { display:block; width:100%; height:100%; overflow:visible; }
.fn-hero__reveal-stroke {
 fill:none;
 stroke:#fff;
 stroke-width:150;
 stroke-linecap:round;
 stroke-linejoin:round;
 stroke-dasharray:1 2;
 stroke-dashoffset:1;
 shape-rendering:geometricPrecision;
 will-change:stroke-dashoffset;
}
.fn-hero__drawn-logo.is-animating .fn-hero__reveal-stroke {
 animation:fnHeroWriteOn 6.8s linear forwards;
}
@keyframes fnHeroWriteOn { to { stroke-dashoffset:0; } }
.fn-hero__drawing-point {
 fill:#fff;
 opacity:0;
 filter:drop-shadow(0 0 18px rgba(255,255,255,.75));
 transform-box:fill-box;
 transform-origin:center;
}
.fn-hero__drawn-logo.is-animating .fn-hero__drawing-point {
 animation:fnHeroDrawingPoint .9s ease-out forwards;
}
@keyframes fnHeroDrawingPoint {
 0%{opacity:0;transform:scale(.35)}
 18%{opacity:1;transform:scale(1)}
 55%{opacity:1;transform:scale(1)}
 100%{opacity:0;transform:scale(.65)}
}
.fn-hero__drawn-nukta {
 position:absolute;
 z-index:4;
 display:block;
 aspect-ratio:1;
 border-radius:50%;
 opacity:0;
}
.fn-hero__drawn-nukta--green { left:12.565%; top:49.219%; width:2.34%; background:#184423; }
.fn-hero__drawn-nukta--gold { left:36.354%; top:40.889%; width:1.97%; background:#c3993f; }
.fn-hero__drawn-logo.is-animating .fn-hero__drawn-nukta--green {
 animation:fnHeroNuktaPop .55s cubic-bezier(.22,1.6,.4,1) 6.8s forwards,fnHeroNuktaFloat 3.8s ease-in-out 7.55s infinite;
}
.fn-hero__drawn-logo.is-animating .fn-hero__drawn-nukta--gold {
 animation:fnHeroNuktaPop .55s cubic-bezier(.22,1.6,.4,1) 7.2s forwards,fnHeroNuktaFloatGold 4.2s ease-in-out 7.95s infinite;
}
@media(prefers-reduced-motion:reduce) {
 .fn-hero__drawn-logo { display:none!important; }
}
