/* Hallmark · genre: modern-minimal · macrostructure: Catalogue grid with portrait detail · theme: custom white
 * pre-emit critique: P5 H4 E4 S5 R5 V4 · original copy · nav: edge-aligned · footer: none
 */
@import url('./cards.css?v=20261005-9');
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('./fonts/sans.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('./fonts/sans-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
.masthead{border-color:var(--color-rule);gap:var(--space-lg);padding-block:var(--space-lg)}
.masthead-copy h1{font-family:var(--font-display);font-weight:700;font-size:clamp(1.875rem,3.4vw,2.625rem);line-height:1.14;letter-spacing:-.045em}
.masthead-copy p{font-size:var(--text-sm);margin-top:var(--space-xs);line-height:1.6}
.masthead nav{gap:var(--space-xs);font-size:.8125rem}
.masthead nav a{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-control)}
.masthead nav a[aria-current]{text-decoration:none;background:var(--color-panel);color:var(--color-accent)}
.directory{padding-block:var(--space-lg) var(--space-xl)}
.directory>h2{font-size:1.125rem;font-weight:600;color:var(--color-muted);margin-bottom:var(--space-md)}
.profiles{gap:var(--space-md)}
.profile{padding:0;gap:0;border-color:var(--color-rule);box-shadow:0 6px 24px var(--color-shadow);transition:transform var(--dur-quick) var(--ease-out);overflow:clip}
.profile:hover{transform:translateY(-2px);box-shadow:0 12px 30px var(--color-shadow-hover)}
.profile-open:focus-visible{outline-offset:-3px}
.profile-photo{border-radius:0;width:112px;height:100%;min-height:180px;object-position:center 24%}
.profile-heading{padding:var(--space-sm) var(--space-sm) var(--space-xs)}
.profile-heading h3{font-family:var(--font-display);font-size:1.125rem;font-weight:700;line-height:1.32;letter-spacing:-.025em}
.profile-heading>p{font-size:.75rem;line-height:1.55;margin-top:var(--space-2xs)}
.profile>.profile-actions{padding:0 var(--space-sm) var(--space-sm);margin:0;border:0;gap:var(--space-2xs)}
.icon-action{border-radius:var(--radius-control);background:var(--color-panel);border-color:var(--color-rule);width:44px;height:44px}
.whatsapp-action{background:var(--color-whatsapp);color:var(--color-accent-ink);border-color:var(--color-whatsapp)}
.profile-dialog{width:min(1020px,calc(100% - var(--space-lg)));padding:var(--space-md);border-radius:var(--radius-card)}
.dialog-toolbar{position:sticky;top:0;height:0;display:flex;justify-content:flex-end;z-index:4}
.dialog-close{position:static;float:none;margin:0;background:var(--color-paper)}
.detail-layout{display:grid;grid-template-columns:100px minmax(0,1fr);gap:var(--space-md) var(--space-sm);padding-top:var(--space-3xs)}
.detail-sidebar,.detail-content{display:contents}
.detail-photo{width:100px;height:130px;grid-column:1;grid-row:1;object-fit:cover;object-position:center 24%;border-radius:var(--radius-control)}
.detail-photo.detail-logo{object-fit:contain;border:var(--rule-width) solid var(--color-rule)}
.detail-heading{display:block;clear:none;grid-column:2;grid-row:1;padding:var(--space-xl) 0 0}
.detail-heading h2{font-family:var(--font-display);font-size:1.375rem;font-weight:700;line-height:1.3;letter-spacing:-.03em}
.detail-heading p{font-size:.75rem;margin:var(--space-xs) 0 0;line-height:1.6}
.detail-sidebar>.profile-actions{grid-column:1/-1;grid-row:2;border:0;padding:0;gap:var(--space-xs)}
.detail-address{grid-column:1/-1;grid-row:3;margin:0;padding:var(--space-sm);background:var(--color-panel);border:0;border-radius:var(--radius-control);font-size:var(--text-sm)}
.detail-address dt{display:block;margin-bottom:var(--space-3xs)}
.detail-address dd{display:block;margin:0}
.profile-biography{grid-column:1/-1;grid-row:4;font-size:1rem;line-height:1.8}
.prose h2,.guide-section>h2{font-size:var(--text-section);line-height:1.3;letter-spacing:-.035em}
@media(min-width:40rem){
 .profile{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}
 .profile-photo{width:100%;height:260px;min-height:0;grid-row:auto}
 .profile-heading{padding:var(--space-md) var(--space-md) var(--space-sm)}
 .profile-heading h3{font-size:1.375rem;line-height:1.3}
 .profile-heading>p{font-size:.8125rem;margin-top:var(--space-xs)}
 .profile>.profile-actions{margin:0 var(--space-md);padding:var(--space-sm) 0 var(--space-md);border-top:var(--rule-width) solid var(--color-rule);gap:var(--space-xs)}
 .profile-dialog{padding:var(--space-lg)}
 .detail-layout{grid-template-columns:230px minmax(0,1fr);gap:var(--space-lg)}
 .detail-sidebar{display:block;min-width:0;align-self:start;position:sticky;top:0}
 .detail-content{display:block;min-width:0}
 .detail-photo{width:100%;height:300px;display:block;border-radius:var(--radius-card)}
 .detail-sidebar>.profile-actions{padding:var(--space-md) 0;border:0}
 .detail-address{font-size:.875rem;line-height:1.65}
 .detail-heading{padding:var(--space-3xs) 56px var(--space-lg) 0;margin-bottom:var(--space-lg);border-bottom:var(--rule-width) solid var(--color-rule)}
 .detail-heading h2{font-size:1.875rem;line-height:1.25}
 .detail-heading p{font-size:.875rem;line-height:1.7;margin-top:var(--space-sm)}
 .profile-biography{font-size:1rem;line-height:1.9}
}
@media(min-width:64rem){.profile-photo{height:270px}.masthead-copy p{margin-bottom:0}.profile-dialog{padding:var(--space-lg)}.detail-layout{grid-template-columns:260px minmax(0,1fr);gap:var(--space-xl)}.detail-photo{height:340px}.detail-heading h2{font-size:2rem}}
@media(max-width:39.99rem){.masthead{padding-block:var(--space-md) var(--space-sm)}.masthead nav{gap:var(--space-3xs) var(--space-2xs)}.masthead nav a{padding:var(--space-2xs);font-size:.75rem}.directory{padding-top:var(--space-md)}.directory>h2{font-size:.875rem}}
@media(max-width:23rem){.profile{grid-template-columns:88px minmax(0,1fr)}.profile-photo{width:88px;min-height:194px}.profile-heading{padding:var(--space-sm) var(--space-xs) var(--space-xs)}.profile>.profile-actions{padding-inline:var(--space-xs);gap:var(--space-3xs)}.profile-heading h3{font-size:1rem}.profile-heading>p{font-size:.6875rem}.detail-layout{grid-template-columns:80px minmax(0,1fr);gap:var(--space-md) var(--space-xs)}.detail-photo{width:80px;height:120px}.detail-heading h2{font-size:1.125rem}.profile-dialog{padding:var(--space-sm)}}
@media(prefers-reduced-motion:reduce){.profile{transition:none}.profile:hover{transform:none}}
@media print{.dialog-toolbar{display:none}.profile{box-shadow:none;transform:none}.detail-sidebar{position:static}}

/* The biography preview uses original copy; the whole card opens the complete text. */
.profile-excerpt{grid-column:2;grid-row:2;margin:0 var(--space-sm) var(--space-xs);padding:0;color:var(--color-muted);font-size:.8125rem;line-height:1.65;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;overflow-wrap:anywhere}
@media(max-width:39.99rem){.profile{grid-template-rows:auto minmax(0,1fr) auto}.profile-photo{grid-row:1/4}.profile-heading{grid-column:2;grid-row:1}.profile>.profile-actions{grid-column:2;grid-row:3}}
@media(min-width:40rem){.profile{grid-template-rows:auto auto minmax(0,1fr) auto}.profile-heading{min-height:128px}.profile-excerpt{grid-column:auto;grid-row:auto;margin:0 var(--space-md) var(--space-sm)}.profile>.profile-actions{align-self:end}}
@media(max-width:23rem){.profile-excerpt{margin-inline:var(--space-xs);font-size:.75rem}}

/* Larger touch targets; DOM order is WhatsApp, phone, website. */
.profile-actions .icon-action{width:52px;min-width:52px;height:52px}
.profile-actions .icon-action svg{width:24px;height:24px}
.profile-actions .whatsapp-action svg{width:26px;height:26px}
.profile>.profile-actions,.detail-sidebar>.profile-actions{gap:12px}
@media(max-width:23rem){.profile>.profile-actions{gap:8px}}

/* Mobile portrait cards: full-width photography, readable copy and a spacious contact row. */
@media(max-width:39.99rem){
 body{font-size:var(--text-body-mobile)}
 .shell{width:calc(100% - var(--space-lg))}
 .masthead{padding-block:var(--space-md) var(--space-sm)}
 .masthead-copy h1{font-size:clamp(1.75rem,7.5vw,2.125rem);line-height:1.2;letter-spacing:-.04em}
 .masthead-copy p{font-size:.9375rem;line-height:1.55;margin-top:var(--space-xs)}
 .masthead nav{gap:var(--space-2xs);margin-top:var(--space-sm);font-size:.875rem}
 .masthead nav a{font-size:.875rem;min-height:44px;display:inline-flex;align-items:center;padding:var(--space-2xs) var(--space-xs)}
 .directory{padding-top:var(--space-md)}
 .directory>h2{font-size:1rem;line-height:1.6;margin-bottom:var(--space-sm)}
 .profiles{grid-template-columns:minmax(0,1fr);gap:var(--space-md)}
 .profile{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto;border-radius:var(--radius-card)}
 .profile:hover{transform:none;box-shadow:0 6px 24px var(--color-shadow)}
 .profile-photo{grid-column:1;grid-row:auto;width:100%;height:clamp(240px,74vw,320px);min-height:0;max-height:none;object-fit:cover;object-position:center 24%}
 .profile-photo.profile-logo{object-fit:contain;padding:var(--space-md);background:var(--color-panel)}
 .profile-heading{grid-column:1;grid-row:auto;min-height:0;padding:var(--space-card) var(--space-card) var(--space-xs)}
 .profile-heading h3{font-size:var(--text-card-mobile);font-weight:700;line-height:1.3;letter-spacing:-.03em}
 .profile-heading>p{font-size:.9375rem;line-height:1.6;margin-top:var(--space-xs)}
 .profile-excerpt{grid-column:1;grid-row:auto;font-size:var(--text-body-mobile);line-height:1.65;margin:0 var(--space-card) var(--space-card)}
 .profile>.profile-actions{grid-column:1;grid-row:auto;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--space-xs);margin:0 var(--space-card);padding:var(--space-sm) 0 var(--space-card);border-top:var(--rule-width) solid var(--color-rule)}
 .profile-actions .icon-action{width:100%;min-width:0;height:var(--control-mobile)}
 .profile-actions .icon-action svg{width:28px;height:28px}
 .profile-actions .whatsapp-action svg{width:30px;height:30px}
 .profile-actions .phone-action svg,.profile-actions .website-action svg{stroke-width:1.8}
 .profile-dialog{width:calc(100% - var(--space-sm));max-height:calc(100dvh - var(--space-sm));padding:var(--space-card);border-radius:var(--radius-card)}
 .dialog-toolbar{height:44px;top:0;background:var(--color-paper);margin-bottom:var(--space-sm)}
 .detail-layout{grid-template-columns:minmax(0,1fr);gap:var(--space-card);padding-top:0}
 .detail-sidebar,.detail-content{display:contents}
 .detail-photo{grid-column:1;grid-row:1;width:100%;height:clamp(200px,60vw,260px);object-fit:cover;object-position:center 24%;border-radius:var(--radius-control)}
 .detail-photo.detail-logo{object-fit:contain;padding:var(--space-sm)}
 .detail-heading{grid-column:1;grid-row:2;padding:0;margin:0}
 .detail-heading h2{font-size:var(--text-card-mobile);line-height:1.3;letter-spacing:-.03em}
 .detail-heading p{font-size:var(--text-body-mobile);line-height:1.6;margin-top:var(--space-xs)}
 .detail-sidebar>.profile-actions{grid-column:1;grid-row:3;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--space-xs);padding:0}
 .detail-address{grid-column:1;grid-row:4;font-size:.9375rem;line-height:1.7;padding:var(--space-sm)}
 .profile-biography{grid-column:1;grid-row:5;font-size:var(--text-body-mobile);line-height:1.8}
}
@media(min-width:40rem) and (max-width:63.99rem){.profile-heading h3{font-size:1.5rem}.profile-heading>p{font-size:.9375rem}.profile-excerpt{font-size:1rem}.profile-actions .icon-action svg{width:26px;height:26px}.profile-actions .whatsapp-action svg{width:28px;height:28px}}

/* Mobile navigation drawer, shared by every public route. */
.mobile-menu-toggle{display:none}
.mobile-menu{inset:0 0 0 auto;margin:0;width:min(340px,90vw);height:100dvh;max-height:none;max-width:none;padding:var(--space-md);border:0;border-left:var(--rule-width) solid var(--color-rule);background:var(--color-paper);color:var(--color-ink);overscroll-behavior:contain}
.mobile-menu::backdrop{background:var(--color-overlay)}
.mobile-menu-header{display:flex;justify-content:flex-end;padding-bottom:var(--space-lg);border-bottom:var(--rule-width) solid var(--color-rule)}
.mobile-menu nav{display:flex;flex-direction:column;gap:var(--space-xs);padding-top:var(--space-md)}
.mobile-menu nav a{display:flex;align-items:center;min-height:56px;padding:var(--space-sm);font-size:1rem;font-weight:600;text-decoration:none;border-radius:var(--radius-control);white-space:normal}
.mobile-menu nav a[aria-current]{background:var(--color-panel);color:var(--color-accent)}
.mobile-menu nav a:hover{background:var(--color-panel)}
body.menu-open{overflow-y:hidden}
@media(max-width:63.99rem){
 .masthead{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:var(--space-sm);align-items:start}
 .masthead .desktop-navigation{display:none}
 .mobile-menu-toggle{display:flex;width:48px;height:48px;margin-top:var(--space-3xs)}
 .masthead-copy p{margin-bottom:0}
}
@media print{.mobile-menu,.mobile-menu-toggle{display:none}}

/* Header identity and explicit biography action. */
.site-brand{display:inline-flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-sm);font-family:var(--font-display);font-size:1.125rem;font-weight:700;letter-spacing:-.025em;color:var(--color-accent);text-decoration:none;width:fit-content}
.brand-mark{display:block;flex:none}
.profile-read-more{position:relative;z-index:2;justify-self:start;display:inline-flex;align-items:center;gap:var(--space-2xs);min-height:44px;margin:0 var(--space-md) var(--space-xs);padding:0;border:0;background:transparent;color:var(--color-accent);font:600 .9375rem var(--font-body);cursor:pointer}
.profile-read-more:hover{text-decoration:underline;text-underline-offset:4px}
.profile-read-more:focus-visible,.site-brand:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}
.profile-excerpt{margin-bottom:0}
@media(min-width:40rem){.profile{grid-template-rows:auto auto minmax(0,1fr) auto auto}}
@media(max-width:63.99rem){
 .masthead-copy{display:contents}
 .site-brand{grid-column:1;grid-row:1;align-self:center;margin-bottom:0}
 .mobile-menu-toggle{grid-column:2;grid-row:1;margin-top:0}
 .masthead-copy h1,.masthead-copy p{grid-column:1/-1}
 .masthead-copy p{margin-top:0}
}
@media(max-width:39.99rem){
 .site-brand{font-size:1rem;gap:var(--space-2xs)}
 .brand-mark{width:32px;height:32px}
 .masthead-copy h1{font-size:clamp(1.375rem,6vw,1.625rem);line-height:1.25;letter-spacing:-.035em}
 .profile{grid-template-rows:auto auto auto auto auto}
 .profile-excerpt{margin-bottom:0}
 .profile-read-more{grid-column:1;margin-inline:var(--space-card);font-size:var(--text-body-mobile)}
}

/* Bare hamburger glyph, retaining the accessible touch target. */
.mobile-menu-toggle{background:transparent;border:0;border-radius:0;color:var(--color-ink);box-shadow:none}
.mobile-menu-toggle:hover,.mobile-menu-toggle:active{background:transparent;color:var(--color-accent);box-shadow:none}
.mobile-menu-toggle svg{width:24px;height:24px}

/* Square portrait frame across desktop, tablet and mobile cards. */
.profile-photo{width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:1 / 1;object-fit:cover;object-position:center 24%}
.profile-photo.profile-logo{object-fit:contain;background:var(--color-paper)}
