/* Project gallery: two columns, each photo at its own proportions. */
.dr-gallery{columns:2;column-gap:var(--space-6,32px)}
.dr-gallery>div{break-inside:avoid;margin-bottom:var(--space-6,32px)}
.dr-imgpair--one{grid-template-columns:minmax(0,1fr)!important;max-width:66%}
@media (max-width:720px){
  .dr-gallery{columns:1}
  .dr-imgpair--one{max-width:none}
}

/* Parallax fix: height:100% on .dr-media__fill overrode the -7% inset,
   so the moving photo left an empty band at the bottom of the frame. */
.dr-media--px .dr-media__fill,.dr-media--px .dr-media__ph{top:-7%;bottom:auto;height:114%}
@media (prefers-reduced-motion:reduce){.dr-media--px .dr-media__fill,.dr-media--px .dr-media__ph{top:0;height:100%}}

/* Press: the first item leads as a wide card, image 2 parts, text 1 part. */
.dr-press__card--feature{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-7,48px);align-items:end}
.dr-press__card--feature .dr-media{margin-block-end:0}
.dr-press__card--feature .dr-press__title{font-size:var(--size-title-2);font-weight:var(--weight-light);line-height:var(--leading-title)}
@media (max-width:900px){
  .dr-press__card--feature{grid-template-columns:1fr;gap:var(--space-5,24px)}
}

/* Header on phones. The burger lines are drawn with currentColor and the
   button never set a colour, so iOS painted them in its system blue. The
   menu dialog takes focus when it opens and must not show a ring. */
.dr-burger{color:var(--ink-0);-webkit-tap-highlight-color:transparent}
.dr-menu__close{-webkit-tap-highlight-color:transparent}
.dr-menu:focus,.dr-menu:focus-visible{outline:none}
.dr-menu nav a{-webkit-tap-highlight-color:transparent}

/* Fixed WhatsApp button, bottom inline-start (right on this RTL site). The paper
   hairline keeps it readable over the black footer and the dark bands. */
.dr-wa{position:fixed;inset-block-end:20px;inset-inline-start:20px;z-index:70;padding:14px 22px;font-size:var(--size-body-sm);border-color:var(--paper-0)}
.dr-wa:hover{border-color:var(--paper-0)}
body:has(.dr-cookie:not([hidden])) .dr-wa{inset-block-end:calc(var(--dr-cookie-h,120px) + 16px)}
@media (max-width:720px){.dr-wa{inset-block-end:16px;inset-inline-start:16px;padding:12px 18px}}

/* Cookie notice: a paper band along the bottom, one hairline above it. */
.dr-cookie{position:fixed;inset-inline:0;inset-block-end:0;z-index:75;background:var(--paper-0);color:var(--text-primary);border-block-start:var(--border-hair) solid var(--line-strong);padding:var(--space-5,24px) var(--page-margin);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-5,24px);align-items:center;max-height:100vh;max-height:100dvh;overflow-y:auto}
.dr-cookie:focus{outline:none}
.dr-cookie p{margin:0;font-size:var(--size-body-sm);line-height:var(--leading-body);max-width:72ch}
.dr-cookie p a{color:var(--text-primary);text-decoration:underline;text-underline-offset:3px}
.dr-cookie__actions{display:flex;gap:var(--space-3,12px);flex-wrap:wrap}
.dr-cookie .dr-btn{padding:12px 20px;font-size:var(--size-caption)}
@media (max-width:720px){
  .dr-cookie{grid-template-columns:1fr;gap:var(--space-4,16px);padding-block-end:calc(var(--space-5,24px) + env(safe-area-inset-bottom))}
  .dr-cookie .dr-btn{flex:1 1 auto}
}

/* Cookie settings: the two categories that open under the notice. */
.dr-cookie__prefs{display:grid;gap:var(--space-3,12px);margin-top:var(--space-4,16px);max-width:72ch}
.dr-cookie__opt{display:flex;gap:12px;align-items:flex-start;font-size:var(--size-body-sm);line-height:var(--leading-body);color:var(--text-secondary);cursor:pointer}
.dr-cookie__opt strong{color:var(--text-primary);font-weight:var(--weight-medium,500)}
.dr-cookie__opt input{flex:none;width:18px;height:18px;margin:3px 0 0;accent-color:var(--ink-0);cursor:pointer}
.dr-cookie__opt input:disabled{cursor:default}

/* The footer link that reopens the cookie settings. */
.dr-footer__legal button{background:none;border:0;border-block-end:1px solid transparent;border-radius:0;padding:0;margin:0;font:inherit;font-size:var(--size-body-sm);line-height:2;color:var(--text-inverse-muted);cursor:pointer}
.dr-footer__legal button:hover{color:var(--text-inverse);border-block-end-color:currentColor}

/* Contact form: the privacy notice and the consent box. */
.dr-contact-privacy{max-width:60ch;line-height:var(--leading-body)}
.dr-consent{margin-top:var(--space-5,24px)}
.dr-consent__opt{display:flex;gap:12px;align-items:flex-start;max-width:60ch;font-size:var(--size-body-sm);line-height:var(--leading-body);color:var(--text-secondary);cursor:pointer}
.dr-consent__opt input{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:var(--ink-0);cursor:pointer}
.dr-consent__opt a{color:var(--text-primary);text-decoration:underline;text-underline-offset:3px}
.dr-consent.dr-field--error .dr-consent__opt{color:var(--text-primary);font-weight:var(--weight-medium,500)}

/* Footer column titles and the contact notes are h2 for a clean heading
   outline. Same look as the h4/h3 they replaced. */
.dr-footer__col h2{font:var(--text-label-role);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-inverse-muted);margin-bottom:var(--space-5);padding-bottom:var(--space-3);border-bottom:var(--border-hair) solid var(--line-inverse)}
.dr-notes h2{font:var(--text-label-role);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-secondary);padding-bottom:var(--space-3);border-bottom:var(--border-hair) solid var(--line-strong)}

/* Enable accessibility toolbar: its launcher sits bottom left and rises
   above the cookie notice while the notice is open. */
body:has(.dr-cookie:not([hidden])) #enable-toolbar-trigger{translate:0 calc(-1 * var(--dr-cookie-h,120px))}

/* Photo loading. reveal.js fetches photos well before they scroll in and
   opens a frame only once its photo is decoded. A photo that still arrives
   late fades in over the frame instead of popping. */
html.dr-js .dr-media__fill{opacity:0;transition:opacity .5s var(--ease-standard),transform var(--duration-slow) var(--ease-standard)}
html.dr-js .dr-media__fill.is-loaded{opacity:1}

/* Video from the press: a still with a text button. */
.dr-video{margin:0}
.dr-video__btn{position:relative;display:block;width:100%;padding:0;border:0;border-radius:0;background:var(--ink-0);color:inherit;font:inherit;text-decoration:none;cursor:pointer;overflow:hidden}
.dr-video__btn img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.86;transition:opacity var(--duration-slow) var(--ease-standard)}
html.dr-js .dr-video__btn img{opacity:0}
html.dr-js .dr-video__btn img.is-loaded{opacity:.86}
.dr-video__btn:hover img.is-loaded,.dr-video__btn:focus-visible img.is-loaded{opacity:.7}
.dr-video__play{position:absolute;inset-inline-start:var(--space-6,32px);inset-block-end:var(--space-6,32px);background:var(--paper-0);color:var(--ink-0);padding:14px 22px;font-size:var(--size-body-sm);font-weight:var(--weight-medium,500);line-height:1.2}
.dr-video__frame{position:relative;width:100%;background:var(--ink-0)}
.dr-video__frame iframe,.dr-video__frame video{position:absolute;inset:0;width:100%;height:100%;border:0;background:var(--ink-0)}
.dr-video__cap{margin-top:var(--space-3,12px);font:var(--text-caption-role);color:var(--text-secondary)}
.dr-press__card--video .dr-video{margin-block-end:var(--space-5,24px)}
.dr-press__card--feature.dr-press__card--video .dr-video{margin-block-end:0}
.dr-press__links{display:flex;flex-wrap:wrap;gap:var(--space-3,12px) var(--space-6,32px)}
.dr-press__links a{color:inherit;text-decoration:none}
@media (max-width:720px){.dr-video__play{inset-inline-start:16px;inset-block-end:16px;padding:12px 18px}}
