/* Responsive quality pass — 2026-11-13: prevent old layout rules from overlapping */
:root { --forest:#1a422f;--dark:#02110c;--cream:#f3ebd6;--sand:#eee3ca;--gold:#ab8a49; }
html { scroll-padding-top:110px; }
body { overflow-x:clip; }
main, section, .section-wrap, .experiences-grid, .exp-left, .exp-right, .collections-head, .contact-grid, .footer-top { min-width:0; }
/* Crucial fix: historical 42px grid column was retained after numerals were hidden.
   Both headings and descriptions were then painting on top of each other. */
.exp-right { display:flex; flex-direction:column; gap:0; min-width:0; margin:0; }
.exp-item { display:flex !important; flex-direction:column; align-items:flex-start; gap:7px; grid-template-columns:none !important; width:100%; min-width:0; padding:18px 2px 20px; margin:0; border:0; border-top:1px solid rgba(243,235,214,.32); background:transparent; }
.exp-item:last-child { border-bottom:1px solid rgba(243,235,214,.32); }
.exp-item > span { display:none !important; }
.exp-item h3 { display:block; width:100%; min-width:0; margin:0; font-family:var(--font); font-size:clamp(28px,2.6vw,37px); line-height:1.16 !important; letter-spacing:0; overflow-wrap:break-word; color:var(--cream); }
.exp-item p { display:block; width:100%; min-width:0; max-width:42ch; margin:0; font:500 15px/1.6 var(--body); color:#e0e7dc; overflow-wrap:break-word; }
.experiences { background:var(--forest); color:var(--cream); padding:clamp(55px,6vw,88px) 0; }
.experiences-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(35px,5vw,85px); align-items:start; }
.exp-left h2 { font-size:clamp(52px,5.2vw,83px); line-height:1.06 !important; overflow-wrap:normal; word-break:normal; text-wrap:pretty; max-width:100%; }
.exp-left h2 em { color:var(--gold-soft); }
.exp-left > p:not(.section-label) { color:#e4e9e2 !important; font-size:16px;line-height:1.7; max-width:46ch; opacity:1; }
.experiences .section-label { color:var(--gold-soft); }
/* Clipped characters in the display typeface need a little breathing room. */
h1,h2,h3,.statement-type { overflow:visible; }
.hero h1,.intro h2,.section-heading h2,.collections h2,.experiences h2,.appointment h2,.about h2,.contact h2,.statement-type { line-height:1.09 !important; letter-spacing:0 !important; overflow-wrap:break-word; padding-block:.055em .10em; margin-block:0; }
.hero h1 { font-size:clamp(55px,7.3vw,117px); max-width:100%; }
.hero-content { max-width:min(790px,90%); }
.hero-bottom { padding-top:20px; }
.intro-body,.section-heading,.collections-head,.appointment > div,.about-text,.contact-top { min-width:0; }
.section-wrap { width:min(1370px,90%); }
/* Do not let oversized graphics or background overlays hide copy. */
.statement-type { font-size:clamp(56px,8vw,112px); }
.statement .statement-inner { padding-block:0; }
.services { padding:clamp(45px,5vw,78px) 0; }
.section-heading { align-items:end; gap:32px; }
.services-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:clamp(205px,18vw,268px); gap:12px; }
.services-grid .service-card.large { grid-row:auto; grid-column:auto; height:auto; }
.service-overlay { padding:18px; }
.service-overlay h3 { font-size:clamp(28px,2.75vw,40px); line-height:1.05 !important; }
.service-overlay p { font-size:13px; line-height:1.55; max-width:34ch; }
.services-grid .coming-visual strong { font-size:clamp(30px,3vw,46px); }
/* Typography, contrast, and spacing consistency */
.intro,.collections,.contact { isolation:isolate; }
.intro { padding-block:clamp(52px,5vw,84px); }
.collections { padding-block:clamp(55px,5.5vw,86px); }
.appointment { margin-block:clamp(25px,3vw,48px); padding:clamp(27px,3.7vw,58px); }
.contact { padding-block:clamp(55px,5vw,84px); }
.about-text { padding-block:clamp(55px,5vw,85px); }
.intro-copy p,.section-heading p:last-child,.collections-head>p:last-child,.appointment p:not(.section-label),.about-text p,.contact-top>p:last-child { color:#33483d; line-height:1.7; }
.contact-form { overflow:visible; }
.contact-form label { min-width:0; }
.contact-info-link strong,.contact-info-link .email-value { overflow-wrap:anywhere; word-break:break-word; }
.footer-brand { min-width:0; }
.footer-brand strong { overflow-wrap:anywhere; }
.gallery-grid { min-width:0; }
.gallery-tile { min-width:0; }
.gallery-info strong { overflow-wrap:break-word; }
.gallery-lightbox { z-index:250; }
/* Desktop nav needs room at intermediate widths. */
.header { gap:16px; }
.brand { flex:0 1 auto; min-width:0; }
.brand-copy { min-width:0; }
.desktop-nav { flex:0 1 auto; gap:clamp(12px,1.7vw,28px); }
.desktop-nav a { white-space:nowrap; font-size:clamp(15px,1.13vw,18px); }
.header-actions { flex:0 0 auto; }
.header-cta { white-space:nowrap; }
/* A legible interactive state on all links and custom clipped buttons. */
:is(a,button,input,select,textarea):focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
@media(max-width:1230px) {
  .desktop-nav,.header-cta { display:none !important; }
  .menu-toggle { display:flex !important; }
  .mobile-nav:not([hidden]) { display:flex; }
  .mobile-nav { position:fixed; top:114px; bottom:0; left:0; right:0; z-index:99; overflow-y:auto; padding:35px 7vw; flex-direction:column; gap:clamp(16px,3vh,27px); }
  .mobile-nav a { font-size:clamp(36px,5.5vw,54px); }
}
@media(max-width:900px) {
  .experiences-grid { grid-template-columns:minmax(0,1fr); gap:30px; }
  .exp-left h2 { font-size:clamp(49px,7.9vw,74px); }
  .exp-right { margin-top:0 !important; }
  .exp-item { padding:15px 0 17px; }
  .exp-item h3 { font-size:clamp(29px,4vw,37px); }
  .collections-head { display:block; }
  .collections-head h2,.collections-head>p:last-child { grid-column:auto; }
  .collections-head h2 { margin-top:16px; }
  .services-grid { grid-auto-rows:230px; }
}
@media(max-width:760px) {
  html { scroll-padding-top:86px; }
  .header { height:73px; }
  .mobile-nav { top:105px; }
  .hero { height:auto; min-height:min(730px,calc(100svh - 105px)); max-height:none; }
  .hero-content { position:relative; left:auto !important; right:auto !important; transform:none; top:auto; width:auto; max-width:none; padding:clamp(95px,17vh,150px) 6% 115px; }
  .hero h1 { font-size:clamp(43px,10.8vw,79px); line-height:1.08 !important; }
  .hero-bottom { gap:14px; width:100%; }
  .hero-bottom p { max-width:32ch; font-size:15px; }
  .hero-index,.hero-side { display:none !important; }
  .section-wrap { width:90%; }
  .intro { display:block; }
  .intro-body { padding-top:18px; }
  .intro-copy { display:block; padding-top:12px; }
  .intro-copy p { font-size:16px; }
  .section-heading { display:block; }
  .section-heading h2,.intro h2,.collections h2,.experiences h2,.appointment h2,.about h2,.contact h2 { font-size:clamp(43px,8.8vw,68px); }
  .section-heading p:last-child { max-width:48ch; }
  .services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:250px; gap:9px; }
  .services-grid .service-card.large { grid-column:span 2; height:340px; }
  .service-overlay h3 { font-size:clamp(26px,4.7vw,36px); }
  .collection-caption { grid-column:span 2; }
  .experiences { padding-block:55px; }
  .exp-left h2 { font-size:clamp(45px,8.3vw,69px); }
  .exp-item p { font-size:14px; }
  .about { display:grid; grid-template-columns:minmax(0,1fr); }
  .contact-grid { grid-template-columns:minmax(0,1fr); gap:40px; }
  .footer-top { display:flex; flex-direction:column; align-items:flex-start; }
  .footer-links { align-items:flex-start; }
  .form-row { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:480px) {
  .brand-logo { width:52px;height:52px; }
  .brand-copy { display:none; }
  .header-actions { gap:7px; }
  .lang-switch { padding:10px 11px; }
  .hero h1 { font-size:clamp(40px,10.5vw,58px); }
  .hero-content { padding-top:90px; padding-bottom:100px; }
  .services-grid { grid-template-columns:minmax(0,1fr); grid-auto-rows:300px; }
  .services-grid .service-card.large { grid-column:auto; height:auto; }
  .service-overlay h3 { font-size:clamp(30px,7.5vw,40px); }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .collections-layout { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .collection-caption { grid-column:span 2; }
  .collection-photo { min-height:270px; }
  .statement-type { font-size:clamp(45px,10vw,70px); }
  .exp-left h2 { font-size:clamp(41px,10vw,55px); }
  .contact-form { padding:24px 19px; }
  .footer-brand strong { font-size:clamp(23px,7.3vw,34px); }
  .footer-brand img { width:69px;height:69px; }
}
/* Arabic language is laid out independently and must not inherit Latin-tightening. */
html[lang=ar] :is(.hero h1,.intro h2,.section-heading h2,.collections h2,.experiences h2,.appointment h2,.about h2,.contact h2,.statement-type,.exp-item h3) { font-family:var(--arabic);font-weight:700;line-height:1.35 !important;letter-spacing:0 !important;word-break:normal; }
html[lang=ar] .exp-item { align-items:stretch; text-align:start; }
html[lang=ar] .exp-item p { max-width:100%; }
html[lang=ar] .hero-content { text-align:start; }
html[lang=ar] .brand { direction:ltr; }
html[lang=ar] .mobile-nav { direction:rtl; }
@media(prefers-reduced-motion:reduce) { .reveal-on-scroll { opacity:1 !important; transform:none !important; } }
/* Final cross-language overflow and collapsed hidden-art corrections */
.appointment { display:block !important; }
.appointment > div { width:100%; max-width:1050px; min-width:0; }
.appointment h2 { width:100%; max-width:100%; }
.contact-form .trap,.trap { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip-path:inset(50%) !important; left:auto !important; right:auto !important; top:auto !important; opacity:0 !important; pointer-events:none !important; }
.text-link { max-width:100%; white-space:normal; flex-wrap:wrap; overflow-wrap:anywhere; }
html[dir=rtl] .text-link { text-align:start; }
html[dir=rtl] .ticker { direction:ltr !important; overflow:hidden; }
html[dir=rtl] .ticker-track { direction:ltr !important; }
@media(max-width:760px){.appointment h2{font-size:clamp(40px,9vw,65px)}.appointment>div{max-width:100%}}
