Files
website/components/BusinessRegistration.module.css

645 lines
9.9 KiB
CSS

.root {
width: 100%;
padding-bottom: 80px;
}
.container {
width: 100%;
max-width: var(--container-width);
margin-inline: auto;
overflow: visible;
}
.steps {
margin-top: 36px;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
border-bottom: 1px solid #ececec;
}
.step,
.stepActive {
position: relative;
padding: 0 12px 16px;
font-size: clamp(12px, 1.1vw, 15px);
font-weight: 300;
line-height: 1;
text-transform: uppercase;
letter-spacing: 0.04em;
color: var(--color-soft);
text-align: center;
transition: color 0.2s ease;
}
.stepActive {
font-weight: 500;
color: var(--color-black);
}
.stepActive::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: -1px;
height: 3px;
background: var(--color-black);
}
.step:hover {
color: var(--color-black);
}
.layout {
margin-top: 28px;
display: grid;
grid-template-columns: minmax(120px, 158px) minmax(0, 1fr);
gap: 28px;
align-items: start;
overflow: visible;
}
.side {
position: relative;
min-height: 520px;
overflow: visible;
}
.sideRail {
position: absolute;
inset: 0 auto 0 0;
width: 100%;
max-width: 158px;
min-height: 644px;
background: #f6f6f6;
border-radius: 6px;
}
.sideImage {
position: absolute;
left: -64px;
top: 140px;
z-index: 1;
width: 240px;
max-width: none;
height: auto;
object-fit: contain;
pointer-events: none;
}
.sideImageLaptop {
width: 288px; /* +20% */
}
.sideImagePainting {
width: 400px;
left: -120px;
top: 100px;
}
.sideImageNotebook {
width: 380px;
left: -110px;
top: 90px;
}
.panel {
min-width: 0;
display: flex;
flex-direction: column;
}
.stepPanel {
display: flex;
flex-direction: column;
gap: 22px;
}
.typeRow {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 18px;
align-items: center;
}
.typeIntro {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 90px;
}
.typeIntro strong {
font-size: 18px;
font-weight: 300;
letter-spacing: 0.54px;
text-transform: uppercase;
}
.typeIntro span {
font-size: 12px;
color: #9c9c9c;
}
.typeCards {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 12px;
}
.typeCard,
.typeCardActive {
position: relative;
isolation: isolate;
display: flex;
align-items: center;
gap: 12px;
min-height: 56px;
padding: 8px 14px 8px 10px;
border: 0;
border-radius: 5px;
background: #f6f6f6;
text-align: left;
overflow: hidden;
transition: color 0.3s ease;
}
.typeCard::before,
.typeCardActive::before {
content: "";
position: absolute;
inset: 0;
z-index: 0;
background: var(--color-black);
clip-path: inset(100% 0 0 0);
transition: clip-path 0.45s cubic-bezier(0.25, 0.8, 0.25, 1);
pointer-events: none;
border-radius: inherit;
}
.typeCard:hover::before,
.typeCardActive::before {
clip-path: inset(0 0 0 0);
}
.typeCard:hover,
.typeCardActive {
color: var(--color-white);
background: #f6f6f6;
}
.typeCardActive {
background: #111;
color: var(--color-white);
}
.typeCard img,
.typeCardActive img,
.typeCard span,
.typeCardActive span {
position: relative;
z-index: 1;
}
.typeIcon {
width: 36px;
height: 36px;
flex-shrink: 0;
display: grid;
place-items: center;
overflow: hidden;
}
.typeIcon img {
width: 100%;
height: 100%;
object-fit: contain;
transition: filter 0.3s ease, transform 0.3s ease;
}
/* Optical scale — source PNGs have uneven padding / visual weight */
.typeIconStore {
transform: scale(0.88);
}
.typeIconCorporates {
transform: scale(1.45);
/* Asset is white-on-black; invert so it reads as black outline on grey cards */
filter: invert(1);
}
.typeIconIndustrial {
transform: scale(1.75);
}
.typeCard:hover .typeIconStore,
.typeCard:hover .typeIconIndustrial,
.typeCardActive .typeIconStore,
.typeCardActive .typeIconIndustrial {
filter: invert(1) brightness(2);
}
.typeCard:hover .typeIconCorporates,
.typeCardActive .typeIconCorporates {
filter: none;
}
.typeCard span,
.typeCardActive span {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.typeCard em,
.typeCardActive em {
font-style: normal;
font-size: 16px;
font-weight: 300;
text-transform: capitalize;
}
.typeCard small,
.typeCardActive small {
font-size: 10px;
color: #989898;
text-transform: capitalize;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.typeCard:hover small,
.typeCardActive small {
color: #cfcfcf;
}
.row,
.row4,
.rowLocation {
display: grid;
gap: 16px;
}
.row {
grid-template-columns: 1fr 1fr;
}
.row4 {
grid-template-columns: 1.4fr 1fr 0.7fr 1.4fr;
}
.rowLocation {
grid-template-columns: 0.9fr 1.2fr 0.8fr;
}
.field {
position: relative;
display: flex;
flex-direction: column;
justify-content: flex-end;
min-height: 46px;
padding: 14px 14px 10px;
border: 1px solid #eee;
border-radius: 5px;
background: #fff;
transition: border-color 0.25s ease;
}
.field span {
position: absolute;
top: -8px;
left: 12px;
background: #fff;
padding: 0 6px;
font-size: 12px;
font-weight: 300;
color: var(--color-body);
transition: color 0.25s ease;
}
.field:focus-within {
border-color: var(--color-black);
}
.field:focus-within span {
color: var(--color-black);
}
.field input,
.field select,
.field textarea {
border: 0;
outline: 0;
background: transparent;
font: inherit;
font-size: 16px;
font-weight: 300;
width: 100%;
color: var(--color-black);
resize: vertical;
}
.field input::placeholder {
color: #c8c8c8;
}
.selectField {
padding-right: 34px;
}
.selectField select {
appearance: none;
cursor: pointer;
}
.selectChevron {
position: absolute;
right: 14px;
bottom: 16px;
width: 10px;
height: 12px;
opacity: 0.5;
transform: rotate(90deg);
pointer-events: none;
transition: opacity 0.25s ease;
}
.selectField:focus-within .selectChevron {
opacity: 1;
}
.textareaField {
min-height: 110px;
padding-top: 18px;
}
.rule {
border: 0;
border-top: 1px solid #ececec;
margin: 4px 0;
}
.uploadGrid {
display: grid;
grid-template-columns: minmax(220px, 0.4fr) minmax(0, 1fr);
gap: 18px;
}
.uploadCard,
.uploadCardWide {
position: relative;
display: flex;
flex-direction: column;
gap: 12px;
cursor: pointer;
}
.uploadHeader {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
min-height: 44px;
padding: 8px 16px;
border-radius: 5px;
background: #f6f6f6;
}
.uploadHeader img {
width: 28px;
height: 28px;
object-fit: contain;
}
.uploadHeader span {
display: flex;
flex-direction: column;
gap: 2px;
}
.uploadHeader em {
font-style: normal;
font-size: 16px;
font-weight: 300;
}
.uploadHeader small {
font-size: 10px;
color: #686868;
text-transform: capitalize;
}
.uploadBox {
display: grid;
place-items: center;
min-height: 220px;
border: 1px solid #c1c1c1;
border-radius: 5px;
font-size: clamp(28px, 3vw, 48px);
font-weight: 700;
color: #e2e2e2;
text-transform: uppercase;
letter-spacing: 0.04em;
text-align: center;
padding: 20px;
}
.fileInput {
position: absolute;
inset: 0;
opacity: 0;
cursor: pointer;
}
.summarySection {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 24px;
}
.summarySection:first-child,
.summarySection:nth-of-type(4) {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.summaryItem {
position: relative;
padding-left: 14px;
display: flex;
flex-direction: column;
gap: 6px;
}
.summaryItem::before {
content: "";
position: absolute;
left: 0;
top: 4px;
bottom: 4px;
width: 1px;
background: #d7d7d7;
}
.summaryItem span,
.summaryBlock span {
font-size: 14px;
font-weight: 300;
letter-spacing: 0.42px;
text-transform: uppercase;
color: #9c9c9c;
}
.summaryItem strong {
font-size: 18px;
font-weight: 300;
text-transform: uppercase;
}
.summaryBlock {
position: relative;
padding-left: 14px;
display: flex;
flex-direction: column;
gap: 10px;
}
.summaryBlock::before {
content: "";
position: absolute;
left: 0;
top: 4px;
bottom: 4px;
width: 1px;
background: #d7d7d7;
}
.summaryBlock p {
font-size: 18px;
font-weight: 300;
line-height: 1.45;
text-align: justify;
}
.footerBar {
margin-top: 28px;
padding-top: 22px;
border-top: 1px solid #ececec;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
.backBtn {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 12px;
font-weight: 300;
letter-spacing: 2.4px;
text-transform: uppercase;
color: #9e9e9e;
}
.backBtn img {
width: 8px;
height: 10px;
opacity: 0.45;
transform: scaleX(-1) rotate(0deg);
}
.continueBtn {
min-width: min(100%, 240px);
min-height: 29px;
padding: 0 18px;
font-size: 12px;
letter-spacing: 2.4px;
}
.confirmHint {
margin: 8px 0 0;
font-size: 12px;
font-weight: 300;
color: #989898;
line-height: 1.45;
}
.submitError {
margin: 12px 0 0;
font-size: 13px;
font-weight: 300;
color: #b42318;
}
.submitOk {
margin: 12px 0 0;
font-size: 13px;
font-weight: 300;
color: #027a48;
}
@media (max-width: 1100px) {
.typeRow {
grid-template-columns: 1fr;
}
.row4,
.rowLocation,
.summarySection,
.summarySection:first-child,
.summarySection:nth-of-type(4) {
grid-template-columns: 1fr 1fr;
}
.uploadGrid {
grid-template-columns: 1fr;
}
}
@media (max-width: 900px) {
.layout {
grid-template-columns: 1fr;
}
.side {
display: none;
}
.typeCards {
grid-template-columns: 1fr;
}
.steps {
overflow-x: auto;
}
.step,
.stepActive {
white-space: nowrap;
}
}
@media (max-width: 640px) {
.row,
.row4,
.rowLocation,
.summarySection,
.summarySection:first-child,
.summarySection:nth-of-type(4) {
grid-template-columns: 1fr;
}
.footerBar {
flex-direction: column-reverse;
align-items: stretch;
}
.continueBtn,
.backBtn {
width: 100%;
justify-content: center;
}
}