/* Al-Masri Global 1.2.0 — corrections and additions on top of the original design (assets/home.html). */

/* Language visibility and header rules shared by every page (were part of portal.css in 1.1.0). */
.footer-col .en-only,.footer-col .zh-only{display:none}body.lang-en .footer-col .en-only,body.lang-zh .footer-col .zh-only{display:block}body.lang-en .footer-col .ar-only,body.lang-zh .footer-col .ar-only{display:none}
@media (min-width:901px){header nav.links{gap:20px}}
.en-only,.zh-only{display:none!important}body.lang-en .ar-only,body.lang-zh .ar-only{display:none!important}body.lang-en .en-only,body.lang-zh .zh-only{display:inline!important}body.lang-en .en-only.block,body.lang-zh .zh-only.block,body.lang-en .en-only[style*="display:block"],body.lang-zh .zh-only[style*="display:block"]{display:block!important}body.lang-en .footer-col>.en-only,body.lang-zh .footer-col>.zh-only{display:block!important}
@media(max-width:980px){nav.links.open{display:flex;flex-direction:column;position:absolute;top:64px;inset-inline-end:24px;background:#0d1b2a;border:1px solid #c9a24c33;border-radius:10px;padding:16px 22px;gap:14px}}
.footer-col>.mono{direction:ltr;unicode-bidi:isolate}
@media(max-width:900px){header .links{gap:12px}header .links a{font-size:13px}}

/* Latin numbers inside right-to-left text keep their order (+249 123 … was shown reversed). */
.mono,.info-item a[href^="tel:"],.info-item a[href^="https://wa.me"]{direction:ltr;unicode-bidi:isolate}
[dir="rtl"] .info-item a.mono,[dir="rtl"] .footer-col>.mono{text-align:right}
.info-item>div{min-width:0}
.info-item span,.info-item a{overflow-wrap:anywhere}

/* The hero caption was pinned to the very bottom edge (its wrapper's padding never applied to an absolutely positioned child). */
.story-caption{bottom:84px}

/* Inner pages (portal, tracking, posts). */
.am-portal-main{padding-top:130px;padding-bottom:80px;min-height:75vh}
.am-portal-main>h1{font-size:clamp(1.6rem,4vw,2.4rem);margin-bottom:24px}
.am-portal-main>p,.am-portal-main>ul,.am-portal-main>ol,.am-portal-main>h2,.am-portal-main>h3,.am-portal-main>figure,.am-portal-main>blockquote{max-width:760px;margin-bottom:18px;line-height:1.9}
.am-portal-main>ul,.am-portal-main>ol{padding-inline-start:22px}
.am-portal-main img{height:auto;border-radius:10px}
.am-portal-main a:not(.btn){color:var(--gold-bright,#E8CB7C)}
.am-post-list{list-style:none;padding:0!important}
.am-post-list li{padding:14px 0;border-bottom:1px solid var(--hairline-soft,rgba(255,255,255,.08))}

/* Phones. */
@media (max-width:600px){
  .container{padding-inline:18px}
  .section{padding:64px 0}
  .section-head{margin-bottom:36px}
  /* Hero caption sat under the floating button and the scroll hint. */
  .story-caption{padding:0 18px;bottom:92px}
  .story-h{font-size:clamp(1.45rem,6.4vw,2rem);line-height:1.3}
  .story-p{font-size:.95rem}
  .scroll-hint{bottom:14px;font-size:.62rem}
  .scroll-hint svg{width:13px;height:13px}
  .scene-tag{inset-inline-start:18px;top:84px;font-size:11px;letter-spacing:2px}
  .hero-ctas{display:flex;flex-wrap:wrap;gap:10px}
  .hero-ctas .btn{flex:1 1 140px;justify-content:center;padding:12px 14px}
  .mini-stats-inner{padding:20px 18px;gap:12px 22px}
  .port-item{padding:0 22px}
  .country-card{padding:16px 10px}
  .country-card .ctags{font-size:.74rem}
  .clients-grid,.countries-grid,.gallery-grid{gap:12px}
  .contact-form{padding:22px 18px}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  /* 16px inputs: iOS zooms the whole page on anything smaller. */
  .form-row input,.form-row select,.form-row textarea,.ams-auth-form input,.ams-track-form input{font-size:16px}
  .am-portal-main{padding-top:96px;padding-bottom:56px}
}
@media (max-width:380px){
  .stats-band{gap:18px 10px}
  .lang-toggle{padding:6px 8px;font-size:.7rem}
  .nav-inner{padding:10px}
}

/* Portal additions. */
.ams-actions{display:flex;gap:10px;flex-wrap:wrap}
.ams-profile{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px;align-items:start}
.ams-card{border:1px solid var(--hairline,#344254);border-radius:14px}
.ams-card h2{font-size:20px;margin-bottom:6px}
.ams-auth-form input:disabled{opacity:.6}
.ams-auth-form small{display:block;margin-top:8px;color:var(--text-dim,#bac3cf)}
.ams-auth-form>a{color:var(--gold-bright,#E8CB7C);display:inline-block;padding:6px 0}
.ams-copy{margin-top:16px;background:none;border:1px solid var(--hairline,#344254);color:var(--text-dim,#bac3cf);border-radius:8px;padding:8px 14px;font:inherit;font-size:14px;cursor:pointer}
.ams-copy:hover{border-color:var(--gold,#C9A24C);color:var(--gold-bright,#E8CB7C)}
.ams-status-delivered{background:#2e76712e;color:#7fd3c9}
.ams-status-customs{background:#a8402f2e;color:#f0a898}
.ams-track-result .ams-shipment-head{margin-bottom:14px}
.ams-facts b,.ams-shipment-head h2{unicode-bidi:plaintext}
@media (max-width:720px){
  .ams-profile{grid-template-columns:1fr}
  .ams-actions{width:100%}
  .ams-actions .btn{flex:1;justify-content:center}
  .ams-dashboard-heading h1,.ams-track h1,.ams-auth-story h1{font-size:24px}
  .ams-stats>div{padding:14px 18px}
  .ams-stats strong{font-size:28px}
  .ams-shipment-head h2{font-size:15px}
  .ams-auth-story{min-height:200px}
}
@media (max-width:420px){.ams-facts{grid-template-columns:1fr}}

/* Chinese uses the fonts already on the visitor's device: Google Fonts is unreachable in mainland China,
   and a self-hosted CJK family would add several megabytes. */
body.lang-zh,body.lang-zh h1,body.lang-zh h2,body.lang-zh h3,body.lang-zh .display,body.lang-zh .brand-text b,body.lang-zh .service-card h3,body.lang-zh .country-card b,body.lang-zh .footer-brand b{font-family:'PingFang SC','Hiragino Sans GB','Microsoft YaHei','Noto Sans CJK SC','Noto Sans SC','Source Han Sans SC',sans-serif}

/* Link under the "Shipment Tracking" service card. */
.service-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;color:var(--gold-bright,#E8CB7C);font-size:.9rem;font-weight:600;border-bottom:1px solid transparent}
.service-link::after{content:'←'}
[dir="ltr"] .service-link::after{content:'→'}
.service-link:hover{border-bottom-color:currentColor}

/* Contact section: both columns end level. The QR card sits under the form, and the
   "shipment details" box takes whatever height is left, so no empty block remains. */
.contact-grid{align-items:stretch}
.contact-main{display:flex;flex-direction:column;gap:22px;min-width:0}
.contact-main .contact-form{flex:1;display:flex;flex-direction:column}
.form-row-details{flex:1;display:flex;flex-direction:column}
.form-row textarea{flex:1;width:100%;min-height:110px;resize:vertical;background:var(--bg-deep);border:1px solid var(--hairline-soft);border-radius:8px;padding:12px 14px;color:var(--text);font:inherit;font-size:.95rem;line-height:1.7}
.form-row textarea:focus{outline:none;border-color:var(--gold)}
.contact-main .qr-card{margin-top:0}
.contact-info .btn svg{flex-shrink:0}

/* No orphan cells: every grid ends on a full row at every width. */
/* Services: eleven cards plus the call-to-action make full rows of three and of two. */
@media (max-width:980px){
  .countries-grid{grid-template-columns:repeat(4,1fr)}
  .gallery-grid>.gallery-photo:first-child{grid-column:1/-1;aspect-ratio:2/1}
}
@media (max-width:600px){
  .countries-grid{grid-template-columns:repeat(2,1fr)}
  .clients-grid{grid-template-columns:repeat(3,1fr)}
  .client-logo{padding:10px}
}

/* Wide screens: the content column was fixed at 1180px, leaving very wide empty margins. */
@media (min-width:1280px){:root{--wrap:min(1760px,94vw)}}
@media (min-width:1280px){
  .section-head{max-width:760px}
  .story-h{max-width:820px}
  .services-grid,.gallery-grid{gap:24px}
}

/* Footer: four columns that use the full width, and far less empty height above and below. */
#contact{padding-bottom:64px}
footer{padding:52px 0 22px}
.footer-grid{grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px 40px;margin-bottom:28px}
footer p{max-width:420px}
.footer-bottom{padding-top:18px;padding-inline-end:84px;min-height:58px}  /* room for the chat button in the corner */
.footer-stamp{width:40px;height:40px}
@media (max-width:980px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px 20px}
  .footer-grid>div:first-child{grid-column:1/-1}
  .footer-grid>.footer-col:last-child{grid-column:1/-1}
  #contact{padding-bottom:48px}
  footer{padding:40px 0 18px}
  .footer-bottom{padding-inline-end:0;padding-bottom:64px}
}
/* Account and article pages stay at a readable width on very wide screens. */
@media (min-width:1280px){.am-portal-main{max-width:1320px}}

/* 1.2.4 — a shorter page: the intro film needs three screens of scrolling instead of five,
   and sections sit closer together now that the content column is wider. */
.scroll-story{height:320vh}
.section{padding:72px 0}
.section-head{margin-bottom:40px}
@media (max-width:600px){
  .scroll-story{height:300vh}
  .section{padding:52px 0}
  .section-head{margin-bottom:30px}
}
/* Hero caption lines up with the page's content column instead of hugging the screen edge. */
.story-caption{inset-inline:0;margin-inline:auto}
@media (min-width:1280px){.scene-tag{inset-inline-start:max(24px,calc((100vw - var(--wrap))/2 + 24px))}}

/* ===== 1.3.0 ===== */
/* About */
.about-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:center}
.about-text h2{font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1.35;margin-bottom:18px}
.about-text p{color:var(--text-dim);line-height:2;margin-bottom:14px;max-width:68ch}
.about-facts{display:flex;flex-direction:column;gap:14px}
.about-fact{display:flex;align-items:center;gap:18px;padding:18px 22px;background:var(--surface);border:1px solid var(--hairline-soft);border-radius:var(--radius)}
.about-fact>b{flex:0 0 92px;font-size:1.7rem;color:var(--gold-bright);text-align:center;direction:ltr}
.about-fact strong{display:block;font-size:1rem;margin-bottom:4px}
.about-fact div>span{color:var(--text-dim);font-size:.9rem}
@media (max-width:980px){.about-grid{grid-template-columns:1fr;gap:28px}}
@media (max-width:600px){.about-fact{padding:14px 16px;gap:14px}.about-fact>b{flex-basis:70px;font-size:1.35rem}}

/* Clients and partners: two labelled rows, always centred, so a short last row never looks like a hole. */
.logo-group+.logo-group{margin-top:36px}
.logo-title{font-size:.95rem;font-weight:700;color:var(--gold);margin-bottom:16px;display:flex;align-items:center;gap:14px}
.logo-title::after{content:'';flex:1;height:1px;background:var(--hairline-soft)}
.logo-row{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.logo-row .client-logo{flex:0 1 calc((100% - 7*16px)/8);min-width:128px}
@media (max-width:600px){.logo-row{gap:10px}.logo-row .client-logo{flex-basis:calc((100% - 20px)/3);min-width:0;padding:10px}}

/* Ports map (replaces the abstract globe). */
.ports-map{display:block;margin-top:6px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--hairline-soft);background:var(--bg-deep);transition:border-color .2s}
.ports-map:hover{border-color:var(--hairline)}
.ports-map{display:flex;align-items:stretch;color:inherit}
.ports-map svg{display:block;flex:0 0 auto;height:320px;width:auto;max-width:62%}
.map-legend{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:11px;padding:20px 24px;border-inline-start:1px solid var(--hairline-soft)}
.map-legend b{font-size:.95rem;color:var(--gold-bright);margin-bottom:4px}
.map-place{display:flex;align-items:center;gap:10px;color:var(--text-dim);font-size:.9rem}
.map-place::before{content:'';flex:0 0 8px;height:8px;border-radius:50%;background:var(--gold)}
@media (max-width:1180px){
  .ports-map{flex-direction:column}
  .ports-map svg{width:100%;height:auto;max-width:none}
  .map-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;padding:14px 16px;border-inline-start:0;border-top:1px solid var(--hairline-soft)}
  .map-legend b{grid-column:1/-1;margin-bottom:0}
}
.ports-map text{font-family:'Tajawal','Inter',system-ui,sans-serif;fill:#F2EEE3}
.ports-map .map-label{font-size:11px;font-weight:700}
.ports-map .map-main{font-size:12.5px;fill:#E8CB7C}
.ports-map .map-sub{font-size:9.5px;fill:#9FB0BE}
.ports-map .map-minor{font-size:9.5px;fill:#9FB0BE}
.ports-map .map-sea{font-size:12px;letter-spacing:3px;fill:#3F9C93;opacity:.75}
.ports-map .map-country{font-size:12px;letter-spacing:3px;fill:#66788A}
.ports-map .map-lane{fill:none;stroke:#3F9C93;stroke-width:1;stroke-dasharray:3 5;opacity:.6}
body.lang-zh .ports-map text{font-family:'PingFang SC','Microsoft YaHei','Noto Sans CJK SC',sans-serif}
.footer-licence{color:var(--text-faint);font-size:.8rem}
@media (max-width:600px){.footer-licence{order:3;width:100%}}
