/* Named contact variant; all visual roles remain owned by UI-kit and existing profile pages. */
.gsm-contact-value { display:inline-flex; align-items:center; gap:8px; max-width:100%; overflow-wrap:anywhere; }
.gsm-contact-value > svg,.gsm-contact-value > img { flex:none; width:20px; height:20px; }
.gsm-contact-note { display:block; color:var(--gsm-ink-2); font-size:var(--gsm-fs-sm); margin-top:4px; }
.ct-manager { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; min-width:0; margin-bottom:32px; }
.ct-manager form { float:none; width:100%; margin:0; padding:0; box-sizing:border-box; }
.ct-manager [hidden] { display:none !important; }
.ct-manager .ct-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:12px; }
.ct-manager .gsm-input,.ct-manager .gsm-select { width:100%; box-sizing:border-box; min-height:44px; }
.ct-manager .ct-status { min-height:24px; margin:8px 0; font-size:var(--gsm-fs-sm); }
.ct-manager .gsm-switch { min-height:44px; }
.ct-manager button { cursor:pointer; min-height:44px; }
.ct-manager button:disabled,.ct-manager label:has(input:disabled) { opacity:.55; cursor:default; }
.ct-manager :is(button,a,input,select):focus-visible { outline:2px solid var(--gsm-blue); outline-offset:3px; }
.ct-manager .ct-error { color:var(--gsm-red-ink,#9b2c2c); font-size:var(--gsm-fs-sm); }
.ct-manager [aria-invalid=true] { border-color:var(--gsm-red-ink,#9b2c2c); }
.ct-manager .ct-field { display:grid; min-width:0; gap:6px; margin-bottom:12px; font-size:var(--gsm-fs-sm); }
.ct-manager .ct-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; }
.ct-manager .ct-actions { display:flex; flex-wrap:wrap; gap:8px; }
.ct-manager .ct-modal { position:fixed; inset:0; box-sizing:border-box; margin:auto; width:calc(100% - 32px); max-width:600px; max-height:calc(100dvh - 48px); overflow:auto; padding:20px; background:var(--gsm-card); color:var(--gsm-ink); border:1px solid var(--gsm-line); border-radius:var(--gsm-r-lg); font:inherit; box-shadow:var(--gsm-shadow); }
.ct-manager .ct-modal::backdrop { background:rgba(20,28,38,.38); }
.ct-manager .ct-modal[open] { animation:ct-dialog-in .3s cubic-bezier(.22,1,.36,1); }
.ct-manager .ct-modal.is-closing { animation:ct-dialog-out .3s ease both; pointer-events:none; }
.ct-manager .ct-modal .ct-heading { position:sticky; top:-20px; background:var(--gsm-card); z-index:1; padding-bottom:8px; }
.ct-manager .ct-discard { margin-top:12px; }
.ct-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@keyframes ct-dialog-in { from { opacity:0; transform:translateY(12px) scale(.98); } to { opacity:1; transform:none; } }
@keyframes ct-dialog-out { to { opacity:0; transform:translateY(12px) scale(.98); } }
@media(max-width:640px) {
 .ct-manager .ct-modal { inset:auto 0 0; width:100%; max-width:none; max-height:calc(100dvh - 8px); margin:0; padding:16px 16px calc(16px + env(safe-area-inset-bottom)); border-radius:20px 20px 0 0; }
 .ct-manager .ct-modal .ct-heading { top:-16px; }
 .ct-manager .ct-modal[open] { animation:ct-sheet-in .3s cubic-bezier(.22,1.12,.36,1); }
 .ct-manager .ct-modal.is-closing { animation:ct-sheet-out .3s ease both; }
 .ct-manager .ct-fields { grid-template-columns:minmax(0,1fr); gap:0; }
 .ct-manager .ct-actions .gsm-btn { flex:1; }
}
@keyframes ct-sheet-in { from { opacity:0; transform:translateY(100%); } to { opacity:1; transform:none; } }
@keyframes ct-sheet-out { to { opacity:0; transform:translateY(100%); } }
@media(prefers-reduced-motion:reduce) { .ct-manager .ct-modal[open],.ct-manager .ct-modal.is-closing { animation:none; } }

.ct-toolbar,.ct-entry-tools { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.ct-entry-tools { margin-top:6px; }
.ct-entry-tools button { min-height:40px; min-width:40px; padding:6px; }
.ct-contact-item { min-width:0; display:grid; gap:4px; }
.ct-contact-item > .acc-act { min-width:0; }
.ct-contact-item .ct-entry-tools { margin:0; }
.ct-contact-item .ct-entry-tools button { min-height:44px; }
.ct-manager .ct-status { margin:0; }


.ct-socials { display:flex; flex-wrap:wrap; align-items:flex-start; gap:6px; }
.ct-social-link { position:relative; display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; box-sizing:border-box; border:1px solid var(--gsm-line); border-radius:var(--gsm-r-md,12px); background:var(--gsm-bg); text-decoration:none !important; }
.ct-social-link:hover { border-color:var(--gsm-blue); }
.ct-social-link:focus-visible { outline:2px solid var(--gsm-blue); outline-offset:3px; }
.ct-social-link img { display:block; width:22px; height:22px; }
.ct-channel-mark { position:absolute; right:1px; bottom:1px; display:grid; place-items:center; width:14px; height:14px; border-radius:50%; background:var(--gsm-card); color:var(--gsm-blue); }
.ct-social-item { display:grid; gap:2px; }
.ct-socials--mobile { padding:0 0 8px; margin:0 0 16px; gap:12px; }
.ct-socials--mobile .ct-social-link { border-color:var(--m-line); background:var(--m-surface); }
.ct-socials--mobile .ct-channel-mark { background:var(--m-surface); color:var(--m-ink); }
@media(max-width:760px) { .ct-toolbar,.ct-entry-tools,.ct-manager { display:none !important; } }

.acc-prose--contacts [data-gsm-contact],.acc-prose--contacts [data-gsm-contact] + dd { display:none; }

.ct-page-heading { display:flex; align-items:center; gap:12px; margin-bottom:24px; }
.ct-page-heading .gsm-page__title { margin:0; }
.ct-edit-mode { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; flex:none; border:1px solid var(--gsm-line); border-radius:var(--gsm-r-md,12px); color:var(--gsm-ink-2); text-decoration:none; }
.ct-edit-mode:hover { color:var(--gsm-blue); border-color:var(--gsm-blue); }
.ct-edit-mode:focus-visible { outline:2px solid var(--gsm-blue); outline-offset:3px; }
@media(max-width:760px) { .ct-edit-mode { display:none; } .ct-social-link { width:44px; height:44px; } .ct-socials { gap:12px; } }

.ct-social-link .ct-channel-mark img { width:12px; height:12px; }

/* Company-card download reuses the canonical order-document action. */
.gsm-company-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.gsm-page .gsm-company-heading > h2 { margin:0; font-size:var(--gsm-fs-lg,18px); line-height:1.3; }
.gsm-company-heading .gsm-order-docs { flex:none; }
.gsm-company-heading .gsm-order-docs .gsm-order-doc { font:600 10px/1.2 var(--gsm-font); color:var(--gsm-ink-2); text-decoration:none; }
.gsm-company-heading .gsm-order-doc img { width:24px; height:26px; flex:none; margin:0; }
.acc-prose .gsm-company-heading > h2 { margin:0; }
.acc-prose .gsm-company-heading .gsm-order-doc { background:var(--m-surface); border-color:var(--m-line); color:var(--m-ink-2); }

/* Full contact page: existing type scale and card tokens, one hierarchy on both layouts. */
.gsm-contact-layout { font-family:var(--gsm-font); font-size:var(--gsm-fs-md,15px); line-height:1.5; }
.gsm-contact-layout .gsm-page__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.gsm-contact-layout .gsm-page__grid > .gsm-card { grid-column:auto; }
.gsm-contact-layout .gsm-page__grid > .gsm-card--wide { grid-column:1/-1; }
.gsm-contact-layout .ct-section-head { display:flex; align-items:center; gap:12px; margin:0 0 16px; min-width:0; }
.gsm-contact-layout .ct-section-head > h2 { flex:1; min-width:0; margin:0; color:inherit; font:600 var(--gsm-fs-lg,18px)/1.3 var(--gsm-font); }
.gsm-contact-layout .ct-section-head > .gsm-page__ico { float:none; margin:0; flex:none; width:36px; height:36px; }
.gsm-contact-layout .ct-section-head > .gsm-page__ico svg { width:20px; height:20px; }
.gsm-contact-layout .gsm-page__facts { margin:0; grid-template-columns:112px minmax(0,1fr); gap:10px 16px; }
.gsm-contact-layout .gsm-page__facts dt { min-width:0; font:400 var(--gsm-fs-sm,13px)/1.5 var(--gsm-font); }
.gsm-contact-layout .gsm-page__facts dd { min-width:0; margin:0; overflow-wrap:anywhere; font:400 var(--gsm-fs-md,15px)/1.5 var(--gsm-font); }
.gsm-contact-layout .ct-contact-facts { margin-top:16px; }
.gsm-contact-layout .gsm-contact-value { font:inherit; }
.gsm-contact-layout .gsm-contact-value > span { min-width:0; overflow-wrap:anywhere; }
.gsm-contact-layout .gsm-contact-note { font:400 var(--gsm-fs-sm,13px)/1.5 var(--gsm-font); }
.gsm-contact-layout .gsm-note { font:400 var(--gsm-fs-sm,13px)/1.5 var(--gsm-font); margin:16px 0 0; }
.gsm-contact-layout .gsm-note + p { margin:12px 0 0; }
.ct-section-tools { flex:none; display:inline-flex; gap:6px; }
.ct-section-tools .gsm-btn { min-width:36px; min-height:36px; padding:7px; }
.ct-manager .ct-modal--section { max-width:720px; }
.ct-fieldset { border:0; margin:0; padding:0; min-width:0; }
.ct-fieldset legend { padding:0; margin-bottom:8px; font-size:var(--gsm-fs-sm); font-weight:600; }
.ct-help { margin:0 0 12px; font-size:var(--gsm-fs-sm); }
.ct-week-head,.ct-week-row { display:grid; grid-template-columns:64px repeat(4,minmax(0,1fr)); align-items:center; gap:8px; }
.ct-week-head { margin-bottom:6px; font-size:var(--gsm-fs-sm); color:var(--gsm-ink-2); }
.ct-week-row { margin-bottom:8px; }
.ct-day-toggle { display:flex; align-items:center; gap:6px; min-height:44px; font-size:var(--gsm-fs-sm); }
.ct-manager .ct-week-row .gsm-input { padding:8px; font-size:var(--gsm-fs-sm); }
.ct-day-error { grid-column:1/-1; }
.acc-prose .gsm-contact-layout .gsm-page__grid { display:block; }
.acc-prose .gsm-contact-layout .gsm-page__facts { display:block; margin:0; }
.acc-prose .gsm-contact-layout .gsm-page__facts dt { margin:0 0 2px; color:var(--m-ink-2); }
.acc-prose .gsm-contact-layout .gsm-page__facts dd { margin:0 0 12px; color:var(--m-ink); }
.acc-prose .gsm-contact-layout .gsm-contact-value { color:var(--m-accent); font-weight:400; }
.acc-prose .gsm-contact-layout .ct-contact-facts { margin-top:16px; }
.acc-prose--contacts .gsm-contact-layout .ct-contact-facts--online { display:none; }
.acc-prose .gsm-contact-layout .gsm-note { font-size:var(--gsm-fs-sm,13px); }
.ct-quick-contacts .acc-act b { font:600 var(--gsm-fs-sm,13px)/1.5 var(--m-font); }
.ct-quick-contacts .acc-act small { font:400 var(--gsm-fs-md,15px)/1.5 var(--m-font); overflow-wrap:anywhere; }
@media(max-width:760px) {
 .gsm-contact-layout .gsm-page__grid { grid-template-columns:minmax(0,1fr); }
 .gsm-contact-layout .gsm-page__facts { grid-template-columns:minmax(0,1fr); gap:0; }
 .gsm-contact-layout .gsm-page__facts dt { margin-bottom:2px; }
 .gsm-contact-layout .gsm-page__facts dd { margin-bottom:12px; }
 .ct-section-tools { display:none !important; }
}

/* Major contacts sections keep the same visible gap outside the inner card grid. */
.gsm-contact-layout--contacts { display:grid; gap:var(--gsm-s-4,16px); }
.gsm-contact-layout--contacts > .gsm-page__grid { margin:0; }
.acc-prose .gsm-contact-layout--contacts > [data-contact-section="legal"] { margin-top:0; }

.ct-manager .ct-bank-title { margin:16px 0 8px; font-size:var(--gsm-fs-lg,18px); }
