/* Part 4: photo albums, secure public forms and contact workflows. */

/* Gallery archive */
.agcm-gallery-archive { background: var(--agcm-soft); }
.agcm-gallery-archive .agcm-filter-bar { margin-top: 0; }
.agcm-album-grid { display: grid; gap: 24px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.agcm-album-card { background: #fff; border: 1px solid #dfe7f1; border-radius: 20px; box-shadow: 0 10px 34px rgba(7,45,96,.06); overflow: hidden; transition: box-shadow .25s,transform .25s; }
.agcm-album-card[hidden] { display: none; }
.agcm-album-card:hover { box-shadow: var(--agcm-shadow); transform: translateY(-5px); }
.agcm-album-card__cover { align-items: flex-end; background: linear-gradient(145deg,#83b7f2,#0757b5); background-position: center; background-size: cover; display: flex; height: 295px; justify-content: flex-end; overflow: hidden; padding: 17px; position: relative; }
.agcm-album-card__cover::after { background: linear-gradient(180deg,rgba(3,28,66,.03) 38%,rgba(3,28,66,.72)); content: ""; inset: 0; position: absolute; }
.agcm-album-card__cover > span { align-items: center; background: rgba(255,255,255,.94); border-radius: 11px; color: var(--agcm-blue); display: grid; gap: 0 6px; grid-template-columns: auto auto; padding: 8px 10px; position: relative; z-index: 1; }
.agcm-album-card__cover svg { grid-row: 1/3; height: 22px; width: 22px; }
.agcm-album-card__cover strong { font-size: 17px; line-height: 1; }
.agcm-album-card__cover small { color: #6a778d; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.agcm-album-card__body { border-top: 5px solid var(--agcm-yellow); padding: 23px 24px 27px; }
.agcm-album-card__body > div { align-items: center; display: flex; justify-content: space-between; }
.agcm-album-card__body > div span { background: #eaf3ff; border-radius: 30px; color: var(--agcm-blue); font-size: 9px; font-weight: 900; letter-spacing: .08em; padding: 5px 9px; text-transform: uppercase; }
.agcm-album-card__body > div small { color: var(--agcm-muted); font-size: 9px; }
.agcm-album-card h2 { font-size: 22px; margin: 17px 0 9px; }
.agcm-album-card h2 a:hover { color: var(--agcm-blue); }
.agcm-album-card__body > p { color: var(--agcm-muted); font-size: 12px; line-height: 1.7; min-height: 41px; }

/* Album details and lightbox */
.agcm-album-single { background: #fff; }
.agcm-album-intro { align-items: start; display: grid; gap: 65px; grid-template-columns: minmax(0,1.4fr) minmax(300px,.6fr); margin-bottom: 48px; }
.agcm-album-intro h2 { font-size: clamp(32px,4vw,48px); margin: 10px 0 18px; }
.agcm-album-intro aside { background: var(--agcm-soft); border: 1px solid #dce5f0; border-radius: 17px; display: grid; padding: 8px 22px; }
.agcm-album-intro aside > span { align-items: center; border-bottom: 1px solid #dce5f0; display: grid; gap: 1px 11px; grid-template-columns: 41px 1fr; padding: 14px 0; }
.agcm-album-intro aside > span:last-child { border-bottom: 0; }
.agcm-album-intro aside svg { background: #fff; border-radius: 10px; color: var(--agcm-blue); grid-row: 1/3; height: 20px; padding: 10px; width: 20px; }
.agcm-album-intro aside small { color: var(--agcm-muted); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.agcm-album-intro aside strong { font-size: 12px; }
.agcm-photo-grid { display: grid; gap: 13px; grid-auto-flow: dense; grid-template-columns: repeat(4,minmax(0,1fr)); }
.agcm-photo-filter-bar { margin-bottom:25px; margin-top:-18px; }
.agcm-photo-item { min-height:250px; position:relative; }
.agcm-photo-item[hidden] { display:none; }
.agcm-photo-item:nth-child(7n+1), .agcm-photo-item:nth-child(7n+5) { grid-column: span 2; grid-row: span 2; min-height: 513px; }
.agcm-photo-tile { background: #dce9f8; border: 0; border-radius: 15px; cursor: zoom-in; height:100%; inset:0; min-height:inherit; overflow: hidden; padding: 0; position:absolute; width:100%; }
.agcm-photo-tile img { height: 100%; inset: 0; object-fit: cover; position: absolute; transition: transform .45s; width: 100%; }
.agcm-photo-tile::after { background: linear-gradient(180deg,transparent 45%,rgba(3,28,66,.55)); content: ""; inset: 0; opacity: .25; position: absolute; transition: opacity .25s; }
.agcm-photo-tile > span { align-items: center; background: var(--agcm-yellow); border-radius: 50%; bottom: 16px; color: var(--agcm-blue-dark); display: flex; height: 43px; justify-content: center; opacity: 0; position: absolute; right: 16px; transform: scale(.8); transition: opacity .25s,transform .25s; width: 43px; z-index: 2; }
.agcm-photo-tile > span svg { height: 19px; width: 19px; }
.agcm-photo-tile:hover img, .agcm-photo-tile:focus img { transform: scale(1.045); }
.agcm-photo-tile:hover::after, .agcm-photo-tile:focus::after { opacity: .7; }
.agcm-photo-tile:hover > span, .agcm-photo-tile:focus > span { opacity: 1; transform: scale(1); }
.agcm-photo-tile:focus-visible { box-shadow: 0 0 0 4px rgba(246,201,21,.6); outline: 0; }
.agcm-photo-download { align-items:center; backdrop-filter:blur(10px); background:rgba(255,255,255,.94); border-radius:9px; bottom:15px; box-shadow:0 7px 20px rgba(3,28,66,.18); color:var(--agcm-blue-dark); display:flex; font-size:10px; font-weight:900; gap:6px; left:15px; padding:9px 11px; position:absolute; text-decoration:none; transition:background .2s,transform .2s; z-index:3; }
.agcm-photo-download:hover,.agcm-photo-download:focus-visible { background:var(--agcm-yellow); color:var(--agcm-blue-dark); transform:translateY(-2px); }
.agcm-photo-download svg,.agcm-lightbox__download svg { height:16px; width:16px; }
.agcm-album-external { align-items: center; background: var(--agcm-yellow-soft); border: 1px solid #f0d86e; border-radius: 16px; display: flex; gap: 25px; justify-content: space-between; margin-top: 38px; padding: 22px 25px; }
.agcm-album-external > div { display: flex; flex-direction: column; }
.agcm-album-external strong { font-size: 15px; }
.agcm-album-external span { color: #716226; font-size: 11px; margin-top: 3px; }
.agcm-lightbox { align-items: center; background: rgba(1,13,31,.96); display: flex; inset: 0; justify-content: center; padding: 55px 100px; position: fixed; z-index: 999999; }
.agcm-lightbox[hidden] { display: none; }
.agcm-lightbox figure { align-items: center; display: flex; flex-direction: column; height: 100%; justify-content: center; margin: 0; max-width: 1200px; width: 100%; }
.agcm-lightbox img { border-radius: 8px; box-shadow: 0 20px 70px rgba(0,0,0,.45); max-height: calc(100vh - 155px); max-width: 100%; object-fit: contain; }
.agcm-lightbox figcaption { color: rgba(255,255,255,.78); font-size: 12px; min-height: 19px; padding-top: 14px; text-align: center; }
.agcm-lightbox button { align-items: center; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); color: #fff; cursor: pointer; display: flex; justify-content: center; position: absolute; }
.agcm-lightbox button:hover { background: var(--agcm-yellow); color: var(--agcm-blue-dark); }
.agcm-lightbox__close { border-radius: 50%; font-size: 25px; height: 46px; right: 25px; top: 22px; width: 46px; }
.agcm-lightbox__nav { border-radius: 50%; font-size: 37px; height: 54px; top: 50%; transform: translateY(-50%); width: 54px; }
.agcm-lightbox__nav--prev { left: 25px; }
.agcm-lightbox__nav--next { right: 25px; }
.agcm-lightbox__count { bottom: 22px; color: rgba(255,255,255,.65); font-size: 10px; font-weight: 800; left: 25px; letter-spacing: .1em; position: absolute; }
.agcm-lightbox__download { align-items:center; background:var(--agcm-yellow); border-radius:9px; color:var(--agcm-blue-dark); display:flex; font-size:11px; font-weight:900; gap:7px; margin-top:13px; padding:10px 14px; text-decoration:none; }
.agcm-lightbox__download:hover,.agcm-lightbox__download:focus-visible { background:#fff; color:var(--agcm-blue); }
body.agcm-lightbox-open { overflow: hidden; }

/* Shared public form system */
.agcm-form-page { background: linear-gradient(180deg,#f4f8fd,#fff); }
.agcm-form-layout { align-items: start; display: grid; gap: 55px; grid-template-columns: minmax(300px,.74fr) minmax(0,1.26fr); }
.agcm-form-aside { background: linear-gradient(145deg,var(--agcm-blue-deep),var(--agcm-blue)); border-radius: 24px; box-shadow: var(--agcm-shadow); color: #fff; overflow: hidden; padding: 43px; position: sticky; top: 25px; }
.agcm-form-aside::after { border: 1px solid rgba(255,255,255,.11); border-radius: 50%; content: ""; height: 320px; position: absolute; right: -150px; top: -140px; width: 320px; }
.agcm-form-aside__icon { align-items: center; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.13); border-radius: 15px; color: var(--agcm-yellow); display: flex; height: 58px; justify-content: center; margin-bottom: 35px; position: relative; width: 58px; z-index: 1; }
.agcm-form-aside__icon svg { height: 28px; width: 28px; }
.agcm-form-aside h2 { color: #fff; font-size: 35px; margin-bottom: 14px; position: relative; z-index: 1; }
.agcm-form-aside > p { color: rgba(255,255,255,.75); font-size: 14px; line-height: 1.8; position: relative; z-index: 1; }
.agcm-trust-list, .agcm-step-list { border-block: 1px solid rgba(255,255,255,.13); display: grid; margin-block: 30px; padding-block: 8px; position: relative; z-index: 1; }
.agcm-trust-list > span, .agcm-step-list > span { align-items: center; display: grid; gap: 1px 12px; grid-template-columns: 39px 1fr; padding-block: 12px; }
.agcm-trust-list svg { background: rgba(255,255,255,.09); border-radius: 9px; color: var(--agcm-yellow); grid-row: 1/3; height: 18px; padding: 9px; width: 18px; }
.agcm-trust-list strong, .agcm-step-list strong { color: #fff; font-size: 12px; }
.agcm-trust-list small, .agcm-step-list small { color: rgba(255,255,255,.58); font-size: 10px; }
.agcm-privacy-note { align-items: flex-start; background: rgba(255,255,255,.09); border-radius: 13px; display: flex; gap: 10px; padding: 15px; position: relative; z-index: 1; }
.agcm-privacy-note svg { color: var(--agcm-yellow); flex: 0 0 auto; height: 18px; margin-top: 2px; width: 18px; }
.agcm-privacy-note p { color: rgba(255,255,255,.71); font-size: 10px; line-height: 1.65; margin: 0; }
.agcm-step-list > span { grid-template-columns: 35px 1fr; }
.agcm-step-list i { align-items: center; background: var(--agcm-yellow); border-radius: 50%; color: var(--agcm-blue-dark); display: flex; font-size: 12px; font-style: normal; font-weight: 900; grid-row: 1/3; height: 31px; justify-content: center; width: 31px; }
.agcm-step-list p { display: flex; flex-direction: column; margin: 0; }
.agcm-public-form-card { background: #fff; border: 1px solid #dfe7f0; border-radius: 24px; box-shadow: 0 18px 55px rgba(7,45,96,.09); overflow: hidden; }
.agcm-public-form { padding: 42px; }
.agcm-form-heading { border-bottom: 1px solid var(--agcm-line); margin-bottom: 28px; padding-bottom: 25px; }
.agcm-form-heading > span { color: var(--agcm-blue); font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.agcm-form-heading h2 { font-size: clamp(27px,4vw,37px); margin: 8px 0 6px; }
.agcm-form-heading p { color: var(--agcm-muted); font-size: 10px; margin: 0; }
.agcm-field-grid { display: grid; gap: 20px 17px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.agcm-field-grid label { display: flex; flex-direction: column; min-width: 0; position: relative; }
.agcm-field-grid label > span { color: var(--agcm-ink); font-size: 10px; font-weight: 800; letter-spacing: .04em; margin: 0 0 7px 2px; }
.agcm-field-grid label > span small { color: #8a95a7; font-weight: 500; }
.agcm-field-grid input, .agcm-field-grid select, .agcm-field-grid textarea { background: #f8fafc; border: 1px solid #d8e1ec; border-radius: 11px; color: var(--agcm-ink); font-family: inherit; font-size: 13px; line-height: 1.4; min-height: 50px; padding: 12px 13px; transition: border-color .2s,box-shadow .2s,background .2s; width: 100%; }
.agcm-field-grid textarea { line-height: 1.65; min-height: 155px; resize: vertical; }
.agcm-field-grid input:focus, .agcm-field-grid select:focus, .agcm-field-grid textarea:focus { background: #fff; border-color: var(--agcm-blue); box-shadow: 0 0 0 4px rgba(7,87,181,.1); outline: 0; }
.agcm-field--full { grid-column: 1/-1; }
.agcm-character-count { bottom: 9px; color: #8b96a8; font-size: 8px; pointer-events: none; position: absolute; right: 11px; }
.agcm-check-group { border-block: 1px solid var(--agcm-line); display: grid; gap: 12px; margin-block: 27px; padding-block: 22px; }
.agcm-check-group label { align-items: flex-start; cursor: pointer; display: flex; gap: 10px; }
.agcm-check-group input { accent-color: var(--agcm-blue); flex: 0 0 auto; height: 17px; margin-top: 1px; width: 17px; }
.agcm-check-group label > span { display: flex; flex-direction: column; }
.agcm-check-group strong { font-size: 11px; }
.agcm-check-group small { color: var(--agcm-muted); font-size: 9px; line-height: 1.55; margin-top: 2px; }
.agcm-submit-button { min-height: 53px; width: 100%; }
.agcm-submit-button[disabled] { cursor: wait; opacity: .7; }
.agcm-form-helper { background: var(--agcm-yellow-soft); border-left: 3px solid var(--agcm-yellow); border-radius: 8px; color: #6c5b18; font-size: 10px; line-height: 1.6; margin: 24px 0; padding: 11px 13px; }
.agcm-honeypot { height: 0!important; left: -9999px!important; overflow: hidden!important; position: absolute!important; width: 0!important; }
.agcm-form-notice { align-items: flex-start; border-bottom: 1px solid; display: flex; gap: 12px; padding: 18px 22px; }
.agcm-form-notice > svg { flex: 0 0 auto; height: 22px; width: 22px; }
.agcm-form-notice p { display: flex; flex-direction: column; margin: 0; }
.agcm-form-notice strong { font-size: 12px; }
.agcm-form-notice span { font-size: 10px; line-height: 1.5; margin-top: 2px; }
.agcm-form-notice--success { background: #e9f8ef; border-color: #a9ddba; color: #146d38; }
.agcm-form-notice--error { background: #fff1ef; border-color: #efc0b8; color: #a33225; }
.agcm-form-notice--info { background: #edf5ff; border-color: #c0d8f5; color: #185c9f; }

/* Contact */
.agcm-contact-page { background: var(--agcm-soft); }
.agcm-contact-cards { display: grid; gap: 15px; grid-template-columns: repeat(4,minmax(0,1fr)); margin-bottom: 52px; }
.agcm-contact-card { background: #fff; border: 1px solid #dfe7f0; border-radius: 16px; display: flex; flex-direction: column; min-height: 155px; padding: 24px; transition: box-shadow .22s,transform .22s; }
a.agcm-contact-card:hover { box-shadow: var(--agcm-shadow); transform: translateY(-3px); }
.agcm-contact-card > span { align-items: center; background: #eaf3ff; border-radius: 11px; color: var(--agcm-blue); display: flex; height: 43px; justify-content: center; margin-bottom: 21px; width: 43px; }
.agcm-contact-card svg { height: 20px; width: 20px; }
.agcm-contact-card small { color: var(--agcm-muted); font-size: 8px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.agcm-contact-card strong { font-size: 12px; line-height: 1.5; margin-top: 4px; word-break: break-word; }
.agcm-contact-layout { align-items: start; display: grid; gap: 60px; grid-template-columns: minmax(300px,.75fr) minmax(0,1.25fr); }
.agcm-contact-info { padding-top: 22px; }
.agcm-contact-info h2 { font-size: clamp(34px,4vw,49px); margin: 13px 0 18px; }
.agcm-contact-info > p { color: var(--agcm-muted); font-size: 14px; line-height: 1.8; }
.agcm-contact-info > div { border-top: 1px solid #dce4ed; display: grid; margin-top: 28px; padding-top: 10px; }
.agcm-contact-fact { align-items: center; display: flex; gap: 12px; padding-block: 12px; }
.agcm-contact-fact > svg { background: #fff; border-radius: 10px; color: var(--agcm-blue); height: 19px; padding: 10px; width: 19px; }
.agcm-contact-fact p { display: flex; flex-direction: column; margin: 0; }
.agcm-contact-fact small { color: var(--agcm-muted); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.agcm-contact-fact strong { font-size: 12px; margin-top: 2px; }

@media (max-width: 1050px) {
	.agcm-album-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.agcm-form-layout, .agcm-contact-layout { gap: 38px; grid-template-columns: minmax(270px,.7fr) minmax(0,1.3fr); }
	.agcm-form-aside { padding: 33px; }
	.agcm-public-form { padding: 32px; }
	.agcm-contact-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 800px) {
	.agcm-album-intro, .agcm-form-layout, .agcm-contact-layout { grid-template-columns: 1fr; }
	.agcm-form-aside { position: static; }
	.agcm-photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.agcm-photo-item, .agcm-photo-item:nth-child(7n+1), .agcm-photo-item:nth-child(7n+5) { grid-column: auto; grid-row: auto; min-height: 290px; }
	.agcm-lightbox { padding: 65px 65px; }
	.agcm-lightbox__nav--prev { left: 12px; }
	.agcm-lightbox__nav--next { right: 12px; }
}

@media (max-width: 560px) {
	.agcm-album-grid, .agcm-contact-cards, .agcm-field-grid { grid-template-columns: 1fr; }
	.agcm-album-card__cover { height: 265px; }
	.agcm-album-intro { gap: 32px; }
	.agcm-photo-grid { gap: 8px; }
	.agcm-photo-item, .agcm-photo-item:nth-child(7n+1), .agcm-photo-item:nth-child(7n+5) { min-height: 190px; }
	.agcm-photo-download { bottom:9px; left:9px; padding:8px 9px; }
	.agcm-album-external { align-items: flex-start; flex-direction: column; }
	.agcm-album-external .agcm-button { width: 100%; }
	.agcm-lightbox { padding: 60px 12px 75px; }
	.agcm-lightbox__nav { bottom: 15px; height: 43px; top: auto; transform: none; width: 43px; }
	.agcm-lightbox__nav--prev { left: calc(50% - 53px); }
	.agcm-lightbox__nav--next { right: calc(50% - 53px); }
	.agcm-lightbox__close { right: 12px; top: 10px; }
	.agcm-lightbox__count { bottom: 28px; left: 14px; }
	.agcm-form-aside, .agcm-public-form { padding: 27px 22px; }
	.agcm-form-aside h2 { font-size: 30px; }
	.agcm-field--full { grid-column: auto; }
	.agcm-contact-card { min-height: 135px; }
}
