@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:wght@500;600;700&family=Noto+Kufi+Arabic:wght@400;500;600;700&display=swap');

:root {
  --ink: #162321;
  --muted: #65716e;
  --cream: #f7f3ea;
  --paper: #fffdf8;
  --green: #1f675a;
  --green-dark: #164b42;
  --gold: #c99747;
  --line: rgba(22, 35, 33, .12);
  --shadow: 0 24px 70px rgba(24, 52, 47, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { color: var(--ink); font-family: 'DM Sans', sans-serif; background: #fff; }
[dir="rtl"] body { font-family: 'Noto Kufi Arabic', sans-serif; }
a { color: inherit; text-decoration: none; }
.py-lg-7 { padding-top: 7rem !important; padding-bottom: 7rem !important; }
.p-xl-6 { padding: 5rem !important; }
.eyebrow { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--green); }
.brand-mark { display: inline-grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: var(--green); color: white; }
.navbar-brand { color: var(--ink); font-weight: 700; }
.public-nav { position: relative; z-index: 10; background: rgba(255,255,255,.92); border-bottom: 1px solid var(--line); backdrop-filter: blur(16px); }
.public-nav .nav-link { color: var(--ink); font-weight: 500; }
.btn-primary { --bs-btn-bg: var(--green); --bs-btn-border-color: var(--green); --bs-btn-hover-bg: var(--green-dark); --bs-btn-hover-border-color: var(--green-dark); }
.site-footer { background: #101d1b; color: #fff; }
.site-footer a { color: rgba(255,255,255,.72); line-height: 1.9; }
.site-footer .text-secondary { color: rgba(255,255,255,.6) !important; }
.footer-label { color: rgba(255,255,255,.45); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .7rem; }
.draft-preview-banner { position: sticky; z-index: 9; top: 73px; display: flex; justify-content: center; gap: .65rem; align-items: center; padding: .7rem 1rem; color: #684b00; background: #fff0bf; border-bottom: 1px solid #e6ce7b; font-size: .86rem; text-align: center; }

/* Design selector */
.selector-page { min-height: 100vh; background: #eff2ee; }
.selector-shell { min-height: 100vh; background-image: radial-gradient(circle at 10% 5%, rgba(198, 226, 217, .8), transparent 30%), radial-gradient(circle at 90% 85%, rgba(236, 210, 167, .55), transparent 28%); }
.concept-card { position: relative; overflow: hidden; border-radius: 28px; background: #fff; box-shadow: 0 18px 50px rgba(35,55,49,.08); transition: transform .25s ease, box-shadow .25s ease; }
.concept-card:hover { transform: translateY(-7px); box-shadow: var(--shadow); }
.concept-visual { position: relative; height: 260px; overflow: hidden; padding: 1.5rem; }
.concept-visual > span { position: relative; z-index: 2; font-weight: 700; }
.visual-orb { position: absolute; width: 210px; height: 210px; border-radius: 50%; right: -20px; bottom: -45px; }
.concept-classic .concept-visual { background: #efe7d4; font-family: 'Playfair Display', serif; }
.concept-classic .visual-orb { background: radial-gradient(circle at 40% 30%, #fff9e9 0 15%, #1f675a 16% 37%, #d6ac63 38% 44%, #1a403a 45%); }
.concept-human .concept-visual { background: #ef714f; color: #fff; }
.concept-human .visual-orb { border-radius: 38% 62% 55% 45%; width: 250px; background: #ffd88e; transform: rotate(12deg); }
.concept-modern .concept-visual { background: #dfe8ff; }
.concept-modern .visual-orb { width: 250px; border-radius: 36px; background: linear-gradient(145deg, #4169e1 0 46%, #b8d9c7 47% 68%, #fcf8e8 69%); transform: rotate(-8deg); }
.concept-kicker { color: var(--green); font-weight: 600; font-size: .8rem; }
.language-row { border-top: 1px solid var(--line); }

/* Shared public pages */
.section-heading { max-width: 680px; }
.section-heading h2 { margin-top: .6rem; }
.service-hero { background: var(--cream); }
.back-link { color: var(--green); font-weight: 600; }
.service-status { display: flex; gap: .65rem; align-items: center; padding: 1rem 1.2rem; background: #e0f3e9; color: #17623f; border-radius: 16px; font-weight: 600; }
.service-status-under_construction { background: #fff0cf; color: #875a00; }
.service-status-coming_soon { background: #e7edff; color: #3658a8; }
.service-status-paused { background: #f3e6e6; color: #8b3535; }
.service-state { display: inline-flex; gap: .32rem; align-items: center; width: max-content; padding: .25rem .5rem; border-radius: 999px; background: #e5f3eb; color: #17623f; font-size: .67rem; font-weight: 700; line-height: 1.2; }
.service-state-under_construction { background: #fff0cf; color: #875a00; }
.service-state-coming_soon { background: #e7edff; color: #3658a8; }
.service-state-paused { background: #f3e6e6; color: #8b3535; }
.service-copy { font-size: 1.08rem; line-height: 1.85; }
.service-aside { padding: 1.5rem; border: 1px solid var(--line); border-radius: 20px; position: sticky; top: 2rem; }
.gallery-section { background: #f7f8f5; }
.gallery-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 18px; }
.service-story-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.service-story-card { overflow: hidden; border-radius: 22px; background: white; box-shadow: 0 14px 45px rgba(35,55,48,.08); }
.service-story-card .gallery-image { display: block; border-radius: 0; }
.service-story-cover { grid-column: 1 / -1; }
.service-story-cover .gallery-image { aspect-ratio: 16 / 7; }
.service-story-copy { padding: 1.35rem 1.45rem 1.5rem; }
.service-story-copy h3 { margin-bottom: .6rem; font-size: 1.3rem; }
.service-story-copy > div { color: var(--muted); line-height: 1.7; }
.service-story-copy > div > :last-child { margin-bottom: 0; }

/* Classic */
.theme-classic { background: var(--paper); }
.theme-classic h1, .theme-classic h2, .theme-classic h3 { font-family: 'Playfair Display', serif; }
.classic-hero { background: linear-gradient(rgba(255,253,248,.92), rgba(255,253,248,.98)), repeating-linear-gradient(45deg, transparent 0 12px, rgba(201,151,71,.08) 13px 14px); }
.classic-hero h1 { max-width: 900px; }
.classic-hero p { max-width: 700px; color: var(--muted); }
.hero-cross { display: inline-grid; place-items: center; width: 78px; height: 78px; border-radius: 50%; border: 1px solid rgba(201,151,71,.45); color: var(--gold); font-size: 1.6rem; }
.classic-stats { border-block: 1px solid var(--line); background: #fff; }
.classic-stats .col-4 { padding: 1.5rem .5rem; border-inline-end: 1px solid var(--line); }
.classic-stats .col-4:last-child { border-inline-end: 0; }
.classic-stats strong { display: block; font: 600 2rem 'Playfair Display', serif; color: var(--green); }
.classic-stats span { font-size: .8rem; color: var(--muted); }
.classic-category { background: white; border: 1px solid var(--line); border-radius: 4px; padding: 2.2rem; box-shadow: 0 12px 40px rgba(40,50,45,.04); }
.category-icon { color: var(--gold); font-size: 1.5rem; margin-bottom: 1.2rem; }
.classic-category p { color: var(--muted); }
.classic-category li { border-top: 1px solid var(--line); }
.classic-category li a { display: flex; justify-content: space-between; padding: .8rem 0; font-weight: 500; }
.classic-about { background: #ece7db; }
.classic-photo-placeholder { min-height: 410px; display: grid; place-items: center; align-content: center; gap: 1rem; color: rgba(255,255,255,.8); background: linear-gradient(145deg, #244f47, #79998e); border-radius: 50% 50% 12px 12px; }
.classic-photo-placeholder i { font-size: 4rem; }

/* Human */
.theme-human { background: #fffaf2; --green: #265c50; }
.theme-human h1, .theme-human h2, .theme-human h3 { font-family: 'Manrope', sans-serif; font-weight: 800; letter-spacing: -.04em; }
.human-hero { background: #fffaf2; }
.human-hero-card { border-radius: 34px; overflow: hidden; background: #f2ba61; box-shadow: var(--shadow); }
.human-photo-placeholder { min-height: 520px; position: relative; background: radial-gradient(circle at 60% 25%, #ffe8bd 0 14%, transparent 15%), linear-gradient(135deg, #dd694b 0 48%, #285d51 49%); }
.photo-label { position: absolute; left: 1.2rem; right: 1.2rem; bottom: 1.2rem; padding: .9rem 1rem; border-radius: 14px; background: rgba(255,255,255,.9); backdrop-filter: blur(10px); }
.human-quote { background: #285d51; color: #fff; }
.human-quote p { max-width: 1100px; font-weight: 600; letter-spacing: -.03em; }
.human-category { border-radius: 26px; overflow: hidden; background: white; box-shadow: 0 14px 40px rgba(55,61,55,.08); }
.category-art { min-height: 290px; display: grid; place-items: center; font-size: 3rem; }
.art-1 { background: #d7e8b6; color: #315f45; }.art-2 { background: #e1ddff; color: #584aa2; }.art-3 { background: #ffcfad; color: #a84f2d; }.art-4 { background: #b9dce6; color: #286270; }
.service-chip { display: inline-block; padding: .35rem .65rem; margin: .15rem; border-radius: 999px; background: #f0f2ed; font-size: .76rem; }
.human-story { background: #f0e4d0; }
.story-number { font: 800 clamp(7rem, 18vw, 14rem)/.75 'Manrope', sans-serif; color: #db6548; letter-spacing: -.1em; }
.story-caption { margin-top: 2rem; font-weight: 700; }

/* Modern */
.theme-modern { font-family: 'Manrope', sans-serif; background: #fbfcff; --green: #315fe5; --green-dark: #254bc0; }
.theme-modern h1, .theme-modern h2, .theme-modern h3 { font-weight: 800; letter-spacing: -.05em; }
.modern-hero { background: radial-gradient(circle at 85% 20%, #cce8d6, transparent 28%), radial-gradient(circle at 10% 90%, #dce4ff, transparent 25%), #f8f9fc; }
.modern-pill { display: inline-flex; align-items: center; gap: .55rem; padding: .5rem .8rem; border-radius: 99px; background: white; border: 1px solid #dce1eb; font-size: .8rem; font-weight: 600; }
.modern-pill span { width: 8px; height: 8px; background: #42a76b; border-radius: 50%; box-shadow: 0 0 0 5px #dff4e6; }
.modern-dashboard { padding: 1rem; border-radius: 26px; background: white; box-shadow: 0 30px 80px rgba(47,72,120,.16); transform: rotate(2deg); }
.dashboard-top { display: flex; gap: 5px; padding: .5rem; }.dashboard-top span { width: 8px; height: 8px; border-radius: 50%; background: #ccd2df; }
.dashboard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.dashboard-grid div { min-height: 145px; display: flex; flex-direction: column; justify-content: space-between; padding: 1.2rem; border-radius: 18px; background: #edf1ff; }
.dashboard-grid div:nth-child(2) { background: #e3f3e9; }.dashboard-grid div:nth-child(3) { background: #fff0df; }.dashboard-grid div:nth-child(4) { background: #f0e7ff; }
.dashboard-grid i { font-size: 1.7rem; }
.modern-service-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
.modern-category { border: 1px solid #dfe3eb; border-radius: 24px; padding: 2rem; background: #fff; }
.modern-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 15px; background: #e9eeff; color: #315fe5; font-size: 1.35rem; }
.modern-category > p { color: var(--muted); }
.modern-links { margin-top: 1.5rem; border-top: 1px solid #e6e9ef; }
.modern-links a { display: flex; justify-content: space-between; padding: .85rem 0; border-bottom: 1px solid #e6e9ef; font-weight: 600; }
.cta-panel { border-radius: 28px; background: #dce6ff; }

/* Authentication */
.auth-page { min-height: 100vh; display: grid; place-items: center; padding: 2rem; background: radial-gradient(circle at 20% 20%, #dcece6, transparent 35%), #f5f6f3; }
.auth-card { width: min(100%, 440px); padding: 2.5rem; background: white; border-radius: 24px; box-shadow: var(--shadow); }

/* Media manager */
.media-manager-page { background: #f4f6f5; }
.manager-header { position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,.94); border-bottom: 1px solid #dfe4e1; backdrop-filter: blur(14px); }
.manager-layout { min-height: calc(100vh - 75px); display: grid; grid-template-columns: 290px 1fr; }
.folder-sidebar { padding: 1.5rem 1rem; background: #fff; border-inline-end: 1px solid #dfe4e1; }
.folder-list { display: grid; gap: .25rem; }
.folder-drop-target { display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: .55rem; padding: .72rem .75rem; border-radius: 12px; color: #4d5956; font-size: .87rem; transition: .15s ease; }
.folder-drop-target:hover, .folder-drop-target.active { background: #eaf3ef; color: #185b4d; }
.folder-drop-target.drag-over { outline: 2px dashed #1f675a; background: #d9efe6; transform: scale(1.02); }
.folder-drop-target small { padding: .15rem .4rem; background: #f1f3f2; border-radius: 99px; }
.manager-content { min-width: 0; padding: 2rem; }
.manager-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.3rem; }
.selection-bar { display: flex; gap: 1rem; align-items: center; padding: .8rem 1rem; margin-bottom: 1rem; border-radius: 12px; background: #dfeee9; color: #185b4d; font-size: .85rem; }
.asset-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1rem; }
.asset-card { position: relative; overflow: hidden; border-radius: 16px; background: white; border: 1px solid #e0e5e2; box-shadow: 0 5px 18px rgba(40,60,52,.04); }
.asset-card.dragging { opacity: .35; }
.asset-check { position: absolute; z-index: 3; top: .65rem; left: .65rem; padding: .25rem; border-radius: 7px; background: rgba(255,255,255,.9); }
.asset-preview { display: block; width: 100%; padding: 0; border: 0; background: #e9eeec; cursor: zoom-in; }
.asset-preview img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .2s ease; }
.asset-preview:hover img { transform: scale(1.035); }
.asset-info { padding: .8rem; }
.asset-name { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: .82rem; font-weight: 600; }
.status-dot { font-size: .68rem; color: #6e7774; }.status-approved { color: #137347; }.status-rejected { color: #b83a3a; }
.empty-library { grid-column: 1 / -1; min-height: 430px; display: grid; place-items: center; align-content: center; text-align: center; color: #66736f; border: 2px dashed #d5dcd8; border-radius: 20px; }
.empty-library > i { font-size: 3rem; color: #9aaba5; }
.upload-note { display: flex; gap: .8rem; margin-top: 1rem; padding: 1rem; border-radius: 12px; background: #eef5f2; color: #426159; font-size: .82rem; }
.manager-preview-image { max-width: 100%; max-height: 78vh; object-fit: contain; }
.metadata-page { min-height: 100vh; background: #f5f7f6; }
.metadata-preview { overflow: hidden; border-radius: 20px; background: white; border: 1px solid #dde3e0; }
.metadata-preview img { display: block; width: 100%; max-height: 520px; object-fit: contain; background: #e9eeec; }
.metadata-form fieldset, .metadata-form .mb-3 { margin-bottom: 1.1rem; }
.sticky-save { position: sticky; bottom: 1rem; padding: 1rem; border: 1px solid #dfe4e1; border-radius: 14px; background: rgba(255,255,255,.94); backdrop-filter: blur(10px); }

/* Content editor */
.content-manager, .content-editor-page { min-height: calc(100vh - 75px); background: #f4f6f5; }
.service-admin-list .list-group { border-radius: 16px; overflow: hidden; }
.editor-structure select, .editor-structure input:not([type="checkbox"]) { display: block; width: 100%; padding: .55rem .75rem; border: 1px solid #ced4da; border-radius: .5rem; background: #fff; }
.language-tabs { gap: .45rem; }
.language-tabs .nav-link { color: #45524f; border: 1px solid #dce2df; background: white; }
.language-tabs .nav-link.active { color: white; background: var(--green); border-color: var(--green); }
.language-editor-card { padding: 2rem; border: 1px solid #e0e5e2; border-radius: 20px; background: white; box-shadow: 0 12px 38px rgba(35,55,48,.06); }
.language-editor-card input[type="text"], .language-editor-card textarea { display: block; width: 100%; padding: .7rem .85rem; border: 1px solid #ced6d2; border-radius: 10px; }
.rich-editor { overflow: hidden; border: 1px solid #ced6d2; border-radius: 12px; }
.rich-toolbar { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; padding: .65rem; border-bottom: 1px solid #dfe4e1; background: #f6f8f7; }
.rich-tool-group { display: flex; gap: .2rem; align-items: center; padding-inline-end: .45rem; border-inline-end: 1px solid #d8dfdc; }
.rich-tool-group:last-child { padding-inline-end: 0; border: 0; }
.rich-tool-selects { flex: 1 1 100%; padding: 0 0 .55rem; border: 0; border-bottom: 1px solid #d8dfdc; }
.rich-tool-selects select { width: auto; min-width: 112px; }
.rich-tool-selects select[data-rich-font] { min-width: 170px; }
.rich-toolbar button { display: grid; width: 34px; height: 34px; place-items: center; border: 0; border-radius: 7px; background: transparent; }
.rich-toolbar button:hover { background: #e5ece9; }
.rich-color-tools label { position: relative; display: grid; width: 34px; height: 34px; place-items: center; overflow: hidden; border-radius: 7px; cursor: pointer; }
.rich-color-tools label:hover { background: #e5ece9; }
.rich-color-tools input[type="color"] { position: absolute; inset: auto 4px 2px; width: 26px; height: 5px; padding: 0; border: 0; opacity: .9; cursor: pointer; }
.rich-surface { min-height: 280px; padding: 1rem; outline: 0; line-height: 1.7; }
.rich-surface:focus { box-shadow: inset 0 0 0 2px rgba(31,103,90,.15); }
.rich-surface blockquote, .service-copy blockquote, .service-story-copy blockquote { padding: .85rem 1rem; border-inline-start: 4px solid var(--green); background: #f3f7f5; color: var(--muted); }
.image-caption-surface { min-height: 170px; }
.service-images-editor { padding-top: 1rem; border-top: 1px solid #dce3df; }
.service-image-editor-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
.service-image-editor-card { overflow: hidden; border: 1px solid #dfe5e2; border-radius: 16px; background: white; transition: transform .2s ease, box-shadow .2s ease; }
.service-image-editor-card:hover { transform: translateY(-3px); box-shadow: 0 14px 35px rgba(35,55,48,.1); }
.service-image-editor-card img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #e9eeec; }
.service-image-editor-card > div { display: grid; gap: .25rem; padding: .85rem; }
.service-image-editor-card span { color: var(--muted); font-size: .75rem; }
.empty-service-images { grid-column: 1 / -1; padding: 2.5rem; text-align: center; color: var(--muted); border: 2px dashed #d5dcd8; border-radius: 18px; }
.empty-service-images i { display: block; margin-bottom: .7rem; font-size: 2rem; }
.translation-status { position: fixed; z-index: 1100; right: 1.5rem; bottom: 1.5rem; max-width: 420px; padding: 1rem 1.2rem; border-radius: 14px; box-shadow: var(--shadow); background: #1b2e2a; color: white; }
.translation-status.success { background: #17623f; }.translation-status.error { background: #9c3131; }

/* Rich visual preview and motion */
.public-nav { position: sticky; top: 0; transition: box-shadow .25s ease, background .25s ease; }
.public-nav.is-scrolled { box-shadow: 0 10px 35px rgba(20, 43, 38, .11); background: rgba(255,255,255,.97); }
.design-link { color: var(--green) !important; }
.motion-ready [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .75s cubic-bezier(.2,.7,.2,1), transform .75s cubic-bezier(.2,.7,.2,1); }
.motion-ready [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
[data-parallax] { transform: translate3d(0, var(--parallax-y, 0), 0) scale(1.04); transition: transform .12s linear; }
.hero-enter { animation: heroRise .9s cubic-bezier(.16,.7,.2,1) both; }
.hero-enter-late { animation: heroRise .9s .16s cubic-bezier(.16,.7,.2,1) both; }
@keyframes heroRise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }

/* Selector photography */
.concept-visual { height: 320px; padding: 0; background: #13231f !important; }
.concept-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,20,17,.08), rgba(7,20,17,.82)); }
.concept-visual img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.concept-card:hover .concept-visual img { transform: scale(1.07); }
.concept-visual > span { position: absolute; z-index: 2; top: 1.2rem; left: 1.2rem; padding: .45rem .7rem; border-radius: 999px; color: white; background: rgba(13,27,23,.48); backdrop-filter: blur(10px); font: 600 .72rem 'DM Sans', sans-serif; }
.concept-preview-copy { position: absolute; z-index: 2; left: 1.4rem; right: 1.4rem; bottom: 1.35rem; color: white; }
.concept-preview-copy small, .concept-preview-copy strong { display: block; }
.concept-preview-copy small { opacity: .72; text-transform: uppercase; letter-spacing: .12em; }
.concept-preview-copy strong { margin-top: .25rem; font-size: 1.6rem; line-height: 1.1; }
.concept-classic .concept-preview-copy strong { font-family: 'Playfair Display', serif; }
.concept-human .concept-preview-copy strong, .concept-modern .concept-preview-copy strong { font-family: 'Manrope', sans-serif; }

/* Classic photography */
.rich-photo-hero { overflow: hidden; }
.classic-hero-copy { position: relative; z-index: 2; }
.classic-photo-composition { position: relative; min-height: 610px; }
.classic-main-photo { position: absolute; inset: 0 0 58px 65px; margin: 0; overflow: hidden; border-radius: 50% 50% 10px 10px; box-shadow: 0 30px 80px rgba(32,45,39,.18); }
.classic-main-photo::after { content: ''; position: absolute; inset: 12px; border: 1px solid rgba(255,255,255,.62); border-radius: inherit; pointer-events: none; }
.classic-main-photo img { width: 100%; height: 100%; object-fit: cover; }
.classic-inset-photo { position: absolute; left: 0; bottom: 0; width: 230px; height: 270px; margin: 0; overflow: hidden; border: 9px solid var(--paper); border-radius: 50% 50% 7px 7px; box-shadow: 0 18px 48px rgba(32,45,39,.2); }
.classic-inset-photo img { width: 100%; height: 100%; object-fit: cover; }
.classic-seal { position: absolute; z-index: 2; right: -18px; bottom: 20px; display: grid; width: 132px; height: 132px; place-items: center; align-content: center; text-align: center; color: #fff; border-radius: 50%; background: var(--green); box-shadow: 0 15px 40px rgba(31,103,90,.28); animation: slowFloat 4s ease-in-out infinite; }
.classic-seal strong { font: 600 2.5rem 'Playfair Display', serif; line-height: 1; }
.classic-seal span { width: 80px; margin-top: .3rem; font-size: .68rem; line-height: 1.2; }
@keyframes slowFloat { 50% { transform: translateY(-9px); } }
.classic-signature { display: flex; align-items: center; gap: 1rem; color: var(--muted); font: italic 1rem 'Playfair Display', serif; }
.classic-signature span { width: 60px; height: 1px; background: var(--gold); }
.classic-signature p { margin: 0; }
.classic-image-ribbon { display: grid; grid-template-columns: 1fr 1.15fr 1fr; min-height: 370px; background: #173e38; color: white; }
.ribbon-image { overflow: hidden; min-height: 360px; }
.ribbon-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
.ribbon-image:hover img { transform: scale(1.05); }
.ribbon-copy { display: flex; flex-direction: column; justify-content: center; padding: 3rem; }
.ribbon-copy .eyebrow { color: #dfb96f; }
.ribbon-copy h2 { font: 600 clamp(2rem, 3vw, 3.3rem)/1.05 'Playfair Display', serif; }
.ribbon-copy p { color: rgba(255,255,255,.66); }
.classic-real-photo { position: relative; height: 530px; overflow: hidden; border-radius: 50% 50% 10px 10px; }
.classic-real-photo img { width: 100%; height: 110%; object-fit: cover; }
.classic-real-photo span { position: absolute; left: 1.25rem; bottom: 1.25rem; padding: .65rem .9rem; color: white; background: rgba(14,35,30,.65); backdrop-filter: blur(10px); }
.classic-text-link { display: inline-flex; gap: .5rem; align-items: center; margin-top: 1rem; color: var(--green); font-weight: 700; }

/* Human photography */
.human-photo-hero { position: relative; min-height: 700px; overflow: hidden; isolation: isolate; }
.human-hero-image { position: absolute; z-index: -2; inset: -4%; width: 108%; height: 108%; object-fit: cover; }
.human-hero-overlay { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(26,47,42,.92) 0%, rgba(26,47,42,.68) 48%, rgba(26,47,42,.1) 78%), linear-gradient(0deg, rgba(12,26,22,.3), transparent 50%); }
.human-hero-content { display: flex; min-height: 700px; flex-direction: column; justify-content: center; width: min(720px, 70%); padding: 4rem; color: white; }
.human-hero-content .lead { color: rgba(255,255,255,.78); }
.human-impact-card { position: absolute; right: 2rem; bottom: 2rem; display: flex; width: 235px; gap: .8rem; align-items: center; padding: 1rem 1.2rem; border-radius: 18px; background: rgba(255,255,255,.9); backdrop-filter: blur(16px); box-shadow: 0 16px 45px rgba(17,38,32,.18); }
.human-impact-card strong { font: 800 2.7rem 'Manrope', sans-serif; color: #db6548; }
.human-impact-card span { font-size: .8rem; line-height: 1.25; }
.human-photo-stream { overflow: hidden; padding: 2rem 0; background: #fffaf2; }
.photo-stream-track { display: grid; grid-template-columns: 1.2fr .8fr 1.25fr .8fr 1.25fr; gap: 1rem; width: 125%; margin-left: -12%; }
.photo-stream-track figure { height: 300px; margin: 0; overflow: hidden; border-radius: 22px; }
.photo-stream-track figure.stream-tall { transform: translateY(24px); }
.photo-stream-track img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease, filter .4s ease; }
.photo-stream-track figure:hover img { transform: scale(1.06); filter: saturate(1.12); }
.human-category { display: grid; grid-template-columns: minmax(180px, 40%) 1fr; }
.human-category-photo { position: relative; min-height: 320px; overflow: hidden; }
.human-category-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
.human-category:hover .human-category-photo img { transform: scale(1.06); }
.human-category-photo span { position: absolute; top: 1rem; left: 1rem; display: grid; width: 44px; height: 44px; place-items: center; color: white; border-radius: 50%; background: rgba(15,38,32,.6); backdrop-filter: blur(8px); font-weight: 700; }
.story-photo { position: relative; }
.story-photo img { width: 100%; height: 430px; object-fit: cover; border-radius: 24px; }
.story-photo .story-number { position: absolute; right: -30px; bottom: -25px; color: #db6548; text-shadow: 0 4px 0 #f0e4d0; }

/* Modern photography */
.modern-photo-stack { position: relative; min-height: 620px; }
.modern-photo-main { position: absolute; inset: 0 50px 75px 0; margin: 0; overflow: hidden; border-radius: 32px; box-shadow: 0 30px 80px rgba(47,72,120,.2); }
.modern-photo-main img { width: 100%; height: 100%; object-fit: cover; }
.modern-photo-side { position: absolute; right: 0; bottom: 0; width: 235px; height: 290px; margin: 0; overflow: hidden; border: 8px solid #f8f9fc; border-radius: 24px; box-shadow: 0 18px 50px rgba(47,72,120,.2); }
.modern-photo-side img { width: 100%; height: 100%; object-fit: cover; }
.modern-photo-note { position: absolute; top: 32px; right: 15px; display: flex; width: 190px; gap: .7rem; align-items: center; padding: .9rem; border-radius: 15px; background: rgba(255,255,255,.92); backdrop-filter: blur(12px); font-size: .78rem; font-weight: 700; box-shadow: 0 12px 32px rgba(47,72,120,.13); }
.modern-photo-note i { color: #ef5b61; }
.modern-trust-row { display: flex; flex-wrap: wrap; gap: 1.4rem; color: #687386; font-size: .83rem; }
.modern-trust-row strong { color: #17213b; font-size: 1.05rem; }
.modern-logo-strip { padding: 1.15rem 0; color: #526077; border-block: 1px solid #dfe4ee; background: white; font-size: .78rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.modern-category { padding: 0; overflow: hidden; transition: transform .3s ease, box-shadow .3s ease; }
.modern-category:hover { transform: translateY(-6px); box-shadow: 0 24px 60px rgba(48,71,115,.13); }
.modern-category-cover { position: relative; height: 260px; overflow: hidden; background: #e7ebf3; }
.modern-category-cover > img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
.modern-category:hover .modern-category-cover > img { transform: scale(1.06); }
.modern-category-cover .modern-icon { position: absolute; left: 1.2rem; bottom: 1.2rem; background: rgba(255,255,255,.92); backdrop-filter: blur(10px); box-shadow: 0 10px 28px rgba(25,45,80,.12); }
.modern-category-body { padding: 2rem; }
.modern-impact-panel { position: relative; min-height: 610px; overflow: hidden; border-radius: 34px; background: #1d2e2a; }
.modern-impact-panel > img { position: absolute; inset: -5%; width: 110%; height: 110%; object-fit: cover; }
.modern-impact-panel::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,29,25,.92), rgba(12,29,25,.45) 60%, rgba(12,29,25,.08)); }
.modern-impact-copy { position: relative; z-index: 2; width: min(650px, 70%); padding: 5rem; color: white; }
.modern-impact-copy p { color: rgba(255,255,255,.72); font-size: 1.1rem; }

@media (max-width: 991.98px) {
  .classic-photo-composition, .modern-photo-stack { min-height: 530px; }
  .classic-main-photo { left: 80px; }
  .classic-image-ribbon { grid-template-columns: 1fr 1fr; }
  .classic-image-ribbon .ribbon-copy { grid-column: 1 / -1; grid-row: 1; }
  .human-photo-hero, .human-hero-content { min-height: 610px; }
  .human-hero-content { width: 85%; padding: 2.5rem; }
  .photo-stream-track { width: 170%; margin-left: -35%; }
  .human-category { grid-template-columns: 1fr; }
  .human-category-photo { min-height: 280px; }
  .modern-impact-copy { width: 85%; padding: 3rem; }
}

@media (max-width: 575.98px) {
  .concept-visual { height: 275px; }
  .classic-photo-composition { min-height: 430px; }
  .classic-main-photo { inset: 0 0 55px 35px; }
  .classic-inset-photo { width: 150px; height: 185px; border-width: 6px; }
  .classic-seal { right: -5px; width: 104px; height: 104px; }
  .classic-image-ribbon { grid-template-columns: 1fr; }
  .classic-image-ribbon .ribbon-copy { grid-column: 1; }
  .ribbon-image { min-height: 280px; }
  .human-photo-hero, .human-hero-content { min-height: 620px; }
  .human-hero-content { width: 100%; padding: 1.5rem; justify-content: flex-end; padding-bottom: 7rem; }
  .human-hero-overlay { background: linear-gradient(0deg, rgba(20,43,37,.95), rgba(20,43,37,.15) 78%); }
  .human-impact-card { left: 1rem; right: 1rem; bottom: 1rem; width: auto; }
  .photo-stream-track { grid-template-columns: repeat(5, 260px); width: max-content; margin-left: -70px; }
  .photo-stream-track figure { height: 250px; }
  .modern-photo-stack { min-height: 460px; }
  .modern-photo-main { inset: 0 35px 55px 0; }
  .modern-photo-side { width: 150px; height: 190px; border-width: 5px; }
  .modern-photo-note { top: 15px; right: 0; width: 165px; }
  .modern-logo-strip .bi { display: none; }
  .modern-impact-panel { min-height: 560px; }
  .modern-impact-copy { width: 100%; padding: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; }
  .motion-ready [data-reveal] { opacity: 1; transform: none; }
  [data-parallax] { transform: none; }
}

@media (max-width: 991.98px) {
  .py-lg-7 { padding-top: 4.5rem !important; padding-bottom: 4.5rem !important; }
  .human-photo-placeholder { min-height: 360px; }
  .modern-dashboard { transform: none; }
  .manager-layout { grid-template-columns: 1fr; }
  .folder-sidebar { position: static; border: 0; border-bottom: 1px solid #dfe4e1; }
  .folder-list { grid-template-columns: repeat(2, 1fr); }
  .manager-toolbar { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 575.98px) {
  .display-1, .display-2 { font-size: clamp(2.6rem, 14vw, 4.2rem); }
  .service-story-grid { grid-template-columns: 1fr; }
  .service-story-cover { grid-column: auto; }
  .service-story-cover .gallery-image { aspect-ratio: 4 / 3; }
  .modern-service-grid { grid-template-columns: 1fr; }
  .manager-content { padding: 1rem; }
  .folder-list { grid-template-columns: 1fr; max-height: 250px; overflow: auto; }
  .asset-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  .asset-info { padding: .6rem; }
  .selection-bar { align-items: flex-start; flex-direction: column; }
}
