@charset "utf-8";

/* =========================
   BASE
========================= */

body{
margin:0;
font-family:'Inter', Arial, Helvetica, sans-serif;
background:#f3f4f6;
color:#1f2933;
line-height:1.6;
width:100%;
max-width:100%;
}

h1,h2,h3{
letter-spacing:-0.3px;
}

.container > p{
max-width:700px;
}

html{
width:100%;
max-width:100%;
overflow-x:hidden;
}

*,
*::before,
*::after{
box-sizing:border-box;
}

/* =========================
   LAYOUT
========================= */


/* SECTIONS */

section{
padding:80px 20px;
}

.container,
.nav{
max-width:1180px;
margin:0 auto;
padding:0 20px;
}

.section-light{
background:#ffffff;
box-shadow:0 1px 0 rgba(0,0,0,0.03);
}

.section-gray{
background:#eef2f6;
border-top:1px solid #e3e7ee;
border-bottom:1px solid #e3e7ee;
}

.section-gray .container{
max-width:780px;
text-align:center;
}

.section-gray p{
font-size:17px;
line-height:1.7;
color:#334155;
}

section + section{
border-top:1px solid rgba(0,0,0,0.04);
}

/* TITLES */

.section-title{
text-align:center;
font-size:28px;
margin-bottom:40px;
font-weight:600;
letter-spacing:-0.2px;
position:relative;
padding-bottom:18px;
}

.section-title::after{
content:"";
width:70px;
height:2px;

background:linear-gradient(
90deg,
rgba(198,165,74,0),
#c6a54a,
rgba(198,165,74,0)
);

position:absolute;
left:50%;
bottom:0;
transform:translateX(-50%);
}

.section-intro{
max-width:720px;
margin:0 auto 40px auto;
text-align:center;
color:#555;
}

/* =========================
   SCROLL REVEAL
========================= */

.reveal{
opacity:0;
transform:translateY(40px);
transition:all .8s ease;
}

.reveal.active{
opacity:1;
transform:translateY(0);
}

/* =========================
   HEADER
========================= */
/* dropdown navigation */

.menu-dropdown{
position:relative;
}

.dropdown-menu{
position:absolute;
top:36px;
left:0;

background:#ffffff;
border:1px solid rgba(0,0,0,0.08);
border-radius:6px;

box-shadow:0 8px 20px rgba(0,0,0,0.08);

display:flex;
flex-direction:column;

opacity:0;
visibility:hidden;
transform:translateY(6px);

transition:all .25s ease;
}

.dropdown-menu a{
padding:10px 16px;
white-space:nowrap;
font-size:14px;
margin:0;
}

.menu-dropdown:hover .dropdown-menu{
opacity:1;
visibility:visible;
transform:translateY(0);
}

.site-header{
position:sticky;
top:0;
background:rgba(255,255,255,0.85);
backdrop-filter:blur(10px);
-webkit-backdrop-filter:blur(10px);
border-bottom:1px solid rgba(0,0,0,0.06);
z-index:1000;
box-shadow:0 2px 8px rgba(0,0,0,0.04);
	
transition:all .25s ease;
   

}

.site-header.scrolled{
background:rgba(255,255,255,0.95);
backdrop-filter:blur(12px);
-webkit-backdrop-filter:blur(12px);
box-shadow:0 4px 14px rgba(0,0,0,0.08);
}

.site-header.scrolled .nav{
padding:12px 24px;
}

.nav{
max-width:1180px;
margin:auto;
padding:18px 24px;

display:flex;
align-items:center;
	
transition:padding .25s ease;
}

.logo{
display:flex;
align-items:flex-end;
gap:8px;
font-weight:600;
font-size:30px;
letter-spacing:-0.4px;
color:#0f172a;
position:relative;
text-decoration:none;
}

.logo img{
height:40px;
width:auto;
filter:contrast(1.05);
margin-right:4px;
margin-bottom:3px;
}

.logo span{
line-height:1;
}

.logo::after{
content:"";
position:absolute;
left:44px;
bottom:-4px;

width:0;
height:2px;

background:#c6a54a;
transition:width .25s ease;
}

.logo:hover::after{
width:160px;
}

.brand-eleven{
font-weight:500;
margin-right: 0px;
opacity:.85;
}

.brand-masselin{
font-weight:700;
letter-spacing:-0.4px;
}

.menu{
margin-left:auto;
display:flex;
align-items:center;
}

.menu a{
margin-left:32px;
text-decoration:none;
color:#1f2933;
font-weight:500;
font-size:15px;
position:relative;
transition:color .2s ease;
}

.menu a::after{
content:"";
position:absolute;
left:0;
bottom:-6px;
width:0;
height:2px;
background:#c6a54a;
transition:width .25s ease;
}

.menu a:hover{
color:#000;
}

.menu a:hover::after{
width:100%;
}

/* =========================
   HERO
========================= */

.hero{
position:relative;

background:
radial-gradient(circle at 50% 30%, rgba(255,255,255,0.14), transparent 55%),
radial-gradient(circle at 85% 10%, rgba(255,255,255,0.10), transparent 60%),
linear-gradient(135deg,#1c3556,#2b4f86);

color:#fff;
padding:75px 20px 100px;
text-align:center;
}

.hero::after{
content:"";
position:absolute;
left:0;
bottom:0;
width:100%;
height:220px;

background:linear-gradient(
to bottom,
rgba(28,53,86,0) 0%,
rgba(28,53,86,0.08) 40%,
rgba(28,53,86,0.16) 70%,
rgba(28,53,86,0.22) 100%
);

pointer-events:none;
}

.hero-inner{
max-width:700px;
margin:auto;
}

.hero h1{
font-size:42px;
line-height:1.18;
letter-spacing:-0.5px;
margin-bottom:20px;
max-width:720px;
margin-left:auto;
margin-right:auto;
}

.hero h1::after{
content:"";
display:block;
width:70px;
height:2px;
margin:18px auto 0;

background:linear-gradient(
90deg,
rgba(198,165,74,0),
#d4b85f,
rgba(198,165,74,0)
);
}

.hero h1 span{
display:block;
}

.hero p{
font-size:18px;
line-height:1.55;
max-width:620px;
margin:0 auto 32px;
opacity:.95;
}

/* Floating first section */

.hero + .container{
margin-top:-45px;
position:relative;
z-index:10;

background:rgba(255,255,255,0.85);
backdrop-filter:blur(10px);
-webkit-backdrop-filter:blur(10px);

padding:45px 50px 55px;
border-radius:16px;

box-shadow:0 25px 60px rgba(0,0,0,0.15);
}

.hero-cred{
margin-top:16px;
margin-bottom:55px;

display:flex;
justify-content:center;
gap:28px;

flex-wrap:wrap;
font-size:14px;
opacity:.9;
}

.hero-cred span{
padding:6px 14px;
border-radius:18px;
background:rgba(255,255,255,0.10);
border:1px solid rgba(255,255,255,0.18);
font-size:13px;
}

.hero-divider{
width:100px;
height:2px;
background:#d4b85f;
margin:35px auto 0;
opacity:.9;
}

.hero-small{
padding:80px 20px 60px;
text-align:center;

background:
linear-gradient(135deg,#1c3556,#2b4f86);

color:#ffffff;

}

/* =========================
   FOCUS
========================= */
.focus-grid{
display:grid;
grid-template-columns:1.2fr 1fr 1fr;
gap:30px;
align-items:stretch;
}

.focus-grid .card-link{
display:block;
height:100%;
}

.focus-grid .card{
height:100%;
}

.focus-consulting{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

.focus-grid .focus-consulting .button{
  margin-top:24px !important;
}

.focus-consulting p{
  max-width:30ch;
}

/* =========================
   BUTTONS
========================= */

.button{
display:inline-block;

background:linear-gradient(
180deg,
#d9bb63,
#c6a54a
);

color:#1f2933;
padding:12px 20px;
border-radius:6px;
text-decoration:none;
font-size:14px;
font-weight:600;
letter-spacing:.2px;

border:1px solid rgba(0,0,0,0.08);

transition:all .25s ease;
}

.button:hover{

background:linear-gradient(
180deg,
#e3c773,
#d4b85f
);

transform:translateY(-2px);

box-shadow:0 6px 14px rgba(0,0,0,0.12);
}

.button.outline{
background:transparent;
border:2px solid #ffffff;
color:#ffffff;
}

/* =========================
   CARDS
========================= */

.card{
position:relative;
background:#ffffff;
border:1px solid rgba(0,0,0,0.08);
border-radius:8px;
padding:28px;
box-shadow:0 6px 16px rgba(0,0,0,0.06);
transition:transform .25s ease, box-shadow .25s ease;
display:flex;
flex-direction:column;
will-change: transform;
}

.card .button{
margin-top:auto;
}

/* subtle museum gold edge */
.card::before{
content:"";
position:absolute;
inset:0;
border:1px solid transparent;
pointer-events:none;
transition:border-color .25s ease;
}

/* clickable card wrapper */
.card-link{
display:block;
text-decoration:none;
color:inherit;
height:100%;
}

/* hover interaction */
.card-link:hover .card{
transform:translateY(-6px);
box-shadow:0 14px 30px rgba(0,0,0,0.12);
}

.card-link:hover .card::before{
border-color:#c6a54a;
}

/* icon */
.card-icon{
width:54px;
height:54px;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
margin-bottom:18px;
background:rgba(198,165,74,0.12);
color:#c6a54a;
font-size:22px;
box-shadow:inset 0 0 0 1px rgba(198,165,74,0.25);
transition:all .25s ease;
}

.card-link:hover .card-icon{
background:rgba(198,165,74,0.18);
color:#d4b85f;
transform:translateY(-2px);
}

/* spacing */
.card p{
margin-bottom:26px;
}

/* refined glass-like highlight sweep */

.card::after{
content:"";
position:absolute;
top:0;
left:-150%;
width:150%;
height:100%;

background:linear-gradient(
110deg,
rgba(255,255,255,0) 40%,
rgba(255,255,255,0.18) 50%,
rgba(255,255,255,0.28) 55%,
rgba(255,255,255,0.18) 60%,
rgba(255,255,255,0) 70%
);

transition:left .8s ease;
pointer-events:none;
}

.card-link:hover .card::after{
left:150%;
}

.card img{
width:100%;
border-radius:6px;
}

.card h3{
margin-top:0;
}

/* =========================
   ABOUT
========================= */
.about-container{
max-width:760px;
text-align:center;
}

.about-container p{
margin-left:auto;
margin-right:auto;
}

.about-lead{
font-size:19px;
line-height:1.65;
color:#1f2933;
max-width:680px;
margin-left:auto;
margin-right:auto;
}

.about-lead-block{
position:relative;
margin-bottom:26px;
}

.about-lead-block::before{
content:"";
position:absolute;
left:-22px;
top:6px;
height:70%;
width:3px;

}

.about-text{
font-size:16px;
line-height:1.7;
color:#475569;
max-width:640px;
}

.about-lead::after{
content:"";
display:block;

width:70px;
height:2px;

margin:24px auto;

/*background:linear-gradient(
90deg,
rgba(198,165,74,0),
#c6a54a,
rgba(198,165,74,0)
);*/
}


/* =========================
   FEATURED
========================= */
.featured-panel{
margin-top:-30px;
background:#ffffff;
border-radius:14px;
padding:40px 45px 50px;
box-shadow:0 22px 50px rgba(0,0,0,0.12);
position:relative;
z-index:5;
}


/* =========================
   COLLECTION
========================= */

.gallery-grid{
display:grid;
grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
grid-template-rows:220px 220px;
gap:30px;
align-items:stretch;
margin-top:20px;
}

.gallery-item:first-child{
grid-row:span 2;
}

.gallery-item{
background-size:cover;
background-position:center;
border-radius:12px;
box-shadow:0 8px 20px rgba(0,0,0,0.08);
transition:transform .35s ease, box-shadow .35s ease;
position:relative;
overflow:hidden;
}

.gallery-item:hover{
transform:scale(1.04);
box-shadow:0 18px 40px rgba(0,0,0,0.18);
}

.gallery-item::after{
content:"";
position:absolute;
inset:0;
background:linear-gradient(
to top,
rgba(0,0,0,.25),
rgba(0,0,0,0)
);
opacity:0;
transition:opacity .3s ease;
}

.gallery-item:hover::after{
opacity:1;
}

.gallery-grid img{
aspect-ratio:3/4;
object-fit:cover;
}

.gallery-overlay{
position:absolute;
inset:0;
display:block;
z-index:2;
}



/* =========================
   GALLERY OVERLAY
========================= */

.image-viewer{

position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,.85);

display:flex;
align-items:center;
justify-content:center;

z-index:1000;

}

.viewer-inner img{
width:auto;
height:auto;
max-width:1000px;
max-height:85vh;
display:block;
margin:auto;
box-shadow:0 20px 60px rgba(0,0,0,.5);
background:white;
padding:10px;
border-radius:4px;
}

.viewer-close{

position:absolute;
top:25px;
right:35px;
font-size:40px;
color:white;
cursor:pointer;

}

.viewer-left,
.viewer-right{

position:absolute;
top:50%;
transform:translateY(-50%);

font-size:40px;
color:white;

cursor:pointer;
padding:20px;

user-select:none;

}

.viewer-left{
left:10px;
}

.viewer-right{
right:10px;
}

.viewer-left:hover,
.viewer-right:hover{
opacity:.7;
}

/* =========================
   SUPPORT CTA
========================= */

.support-contact{
background:#f5f6f7;
border-top:1px solid #e5e7eb;
}

.support-inner{
display:flex;
justify-content:space-between;
align-items:center;
gap:40px;
}

.support-button{
padding:12px 26px;
background:#d4af37;
color:#000;
text-decoration:none;
font-weight:600;
border-radius:4px;
}

.support-contact-combo{
display:flex;
align-items:center;
justify-content:center;
gap:28px;
margin-top:20px;
flex-wrap:wrap;
text-align:center;
}

.support-call-label{
font-size:14px;
color:#6b7280;
margin-bottom:4px;
}

.support-phone{
display:inline-block;
font-size:20px;
font-weight:700;
color:#173a63;
text-decoration:none;
}

.support-phone:hover{
color:#c6a54a;
}

.support-divider{
font-size:14px;
color:#999;
}

.support-request .button{
margin-top:0;
}

/* =========================
   CONSULTING PAGE
========================= */

.consulting-page .container{
max-width:820px;
}


/* Consulting Hero */
.consulting-hero{

background:
linear-gradient(135deg,#1c3556,#2b4f86);

color:#ffffff;

padding:90px 20px 80px;

border-bottom:1px solid rgba(0,0,0,0.15);
}

.consulting-hero-inner{
max-width:760px;
margin:auto;
}

.consulting-hero h1{
font-size:40px;
margin-bottom:18px;
letter-spacing:-0.4px;
}

.consulting-lead{
font-size:18px;
line-height:1.6;
opacity:.92;
margin-bottom:28px;
max-width:640px;
}

.consulting-hero-meta{

display:flex;
gap:22px;
flex-wrap:wrap;

font-size:14px;
opacity:.9;
}

.consulting-hero-meta span{
display:flex;
align-items:center;
gap:8px;
}

.consulting-hero-meta i{
color:#d4b85f;
}

/* Credibility */
.credibility-band{
background:#ffffff;
border-bottom:1px solid #e5e7eb;
padding:28px 20px;
}

.credibility-inner{
max-width:900px;
margin:auto;

display:grid;
grid-template-columns:repeat(4,1fr);
gap:30px;

text-align:center;
}

.cred-item strong{
display:block;
font-size:20px;
font-weight:600;
color:#0f172a;
}

.cred-item span{
font-size:13px;
color:#64748b;
}

/* Tech Grid */
.tech-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:40px;
max-width:800px;
margin:40px auto 60px;
}

.tech-item h3{
font-size:16px;
margin-bottom:8px;
}

.tech-item p{
font-size:15px;
color:#475569;
margin-top:6px;
}

/* Simple Support */

.support-services{
padding:70px 20px;
background:#f5f6f7;
}

.two-col{
display:grid;
grid-template-columns:1fr 1fr;
gap:60px;
max-width:1000px;
margin:auto;
}

.support-services ul{
padding-left:18px;
}


.support-skills{
padding:70px 20px;
background:#ffffff;
text-align:center;
}

.skills-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:40px;
max-width:720px;
margin:0 auto;
}

.skill{
background:#f5f6f7;
padding:25px;
border-radius:6px;
}


.support-resources{
padding:90px 20px;
background:#f7f8fa;
border-top:1px solid #e5e7eb;
}

.support-resources p{
max-width:600px;
margin:0;
margin-bottom:12px;
}

.support-button{
display:inline-block;
margin-top:20px;
padding:12px 28px;
background:#d4af37;
color:#000;
text-decoration:none;
font-weight:600;
border-radius:4px;
}

.support-combined{
display:grid;
grid-template-columns:1.6fr 1fr;
gap:100px;
align-items:start;
max-width:1000px;
margin:auto;
}

.support-contact-box{
background:#ffffff;
padding:40px 38px;
border-radius:10px;
box-shadow:0 10px 28px rgba(0,0,0,0.08);
text-align:center;
}

.support-contact-box h2{
margin-bottom:10px;
}

.support-contact-box p{
margin-bottom:20px;
}

/* =========================
   SUPPORT MODAL
========================= */

.support-modal{
display:none;
position:fixed;
inset:0;
z-index:3000;
}

.support-modal.show{
display:block;
}

.support-modal-overlay{
position:absolute;
inset:0;
background:rgba(0,0,0,0.58);
backdrop-filter:blur(3px);
-webkit-backdrop-filter:blur(3px);
}

.support-modal-content{
position:relative;
width:min(92vw, 580px);
margin:40px auto;
max-height:85vh;
overflow-y:auto;
background:#ffffff;
border:1px solid rgba(0,0,0,0.08);
border-radius:14px;
padding:28px 28px 28px;
box-shadow:0 18px 45px rgba(0,0,0,0.24);
z-index:1;
box-sizing:border-box;
display:flex;
flex-direction:column;
}

.support-modal-content h2{
margin-top:0;
margin-bottom:10px;
}

.support-modal-content p{
margin-bottom:20px;
}

.support-modal-close{
position:absolute;
top:10px;
right:14px;
border:none;
background:none;
font-size:32px;
line-height:1;
cursor:pointer;
color:#173a63;
z-index:2;
}

.support-form-row{
display:flex;
flex-direction:column;
margin-bottom:16px;
}

.support-form-row label{
font-weight:600;
margin-bottom:6px;
}

.support-form-row input,
.support-form-row textarea
.support-form-row select{
width:100%;
box-sizing:border-box;
padding:10px 12px;
font:inherit;
font-size:14px;
border:1px solid rgba(0,0,0,0.16);
border-radius:8px;
background:#fff;
}

.support-form-row textarea{
resize:vertical;
min-height:140px;
}

.support-form-actions{
margin-top:12px;
position:sticky;
bottom:0;
background:#fff;
padding-top:16px;
}

.support-submit-button{
display:inline-block;
border:none;
cursor:pointer;
padding:12px 22px;
border-radius:8px;
font:inherit;
font-weight:600;
background:linear-gradient(135deg, #d9bb63, #c6a54a);
color:#111;
box-shadow:0 6px 14px rgba(0,0,0,0.12);
transition:transform .2s ease, box-shadow .2s ease;
}

.support-submit-button:hover{
transform:translateY(-1px);
box-shadow:0 10px 18px rgba(0,0,0,0.16);
}

.support-form-status{
margin:0 0 16px 0;
padding:12px 14px;
border-radius:8px;
font-weight:600;
}

.support-form-status.success{
background:#eef7ee;
color:#1d5c2e;
border:1px solid #cfe6d2;
}

.support-form-status.error{
background:#fff3f3;
color:#8a1f1f;
border:1px solid #efc7c7;
}

.support-checkbox{
display:flex;
align-items:center;
gap:10px;
font-weight:600;
}

.support-checkbox input{
width:auto;
margin:0;
}

.hp-field{
position:absolute;
left:-9999px;
width:1px;
height:1px;
overflow:hidden;
}

.support-form-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:18px 20px;
}

/* full-width fields */
.support-form-row.full{
grid-column:1 / -1;
}

/* =========================
   ACTIVE GALLERY PAGE
========================= */

/* catalog grid for collection pages */

.catalog-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:44px;
  justify-items:center;
}

.catalog-grid > .card-link{
  width:100%;
  max-width:320px;
}

.catalog-item{
  padding:14px;
  width:100%;
  max-width:none;
  height:100%;
  margin:0 auto;
  display:flex;
  flex-direction:column;
}

.catalog-item img{
  width:100%;
  display:block;
}

.catalog-meta h3{
font-size:16px;
letter-spacing:0;
margin:0 0 8px 0;
line-height:1.35;
min-height:4.1em;
}

/* catalog text */

.catalog-meta{
display:flex;
flex-direction:column;
flex:1;
gap:0;
padding-top:12px;
text-align:left;
}

/* button spacing */

.catalog-meta .button{
margin-top:auto;
align-self:flex-start;
}

.catalog-meta .object-meta{
  margin-top:0;
  margin-bottom:12px;
}

.object-meta{
font-size:0.9rem;
color:#666;
margin: 0 0 12px 0;
}

.object-link{
font-size:13px;
text-decoration:none;
font-weight:600;
}

.object-link:hover{
text-decoration:underline;
}

.object-layout{
display:grid;
grid-template-columns:1.2fr 1fr;
gap:60px;
max-width:1100px;
margin-top:20px;
margin:auto;
padding:10px 20px;
}

.object-disclaimer{
margin-top:6px;
padding-top:6px;
border-top:1px solid rgba(0,0,0,0.08);
max-width:520px;
font-size:0.76rem;
color:#6b7280;
line-height:1.35;
}

.object-disclaimer p{
margin:0;
font-style:italic;
}

/* gallery */

.object-gallery{
width:100%;
max-width:520px;
display:flex;
flex-direction:column;
margin-top:0;
}

/* main image */

.object-page{
margin-bottom:32px;
}

.object-main-image{
width:520px;
height:520px;
overflow:hidden;
display:flex;
align-items:center;
justify-content:center;
background:#fff;
}


.object-main-image img{
max-width:100%;
max-height:100%;
object-fit:contain;
display:block;
border-radius:6px;
cursor:zoom-in;
transition:transform .2s ease;
}

/* thumbnails */

.object-thumbs{
display:flex;
gap:10px;
margin-top:14px;
align-items:flex-start;
flex-wrap:wrap;
max-width:520px;
}

.object-thumbs img{
width:70px;
height:70px;
object-fit:cover;
border-radius:4px;
cursor:pointer;
border:1px solid rgba(0,0,0,.12);
transition:transform .2s ease;
}

.object-thumbs img:hover{
transform:scale(1.08);
}

.object-image img{
width:100%;
border-radius:4px;
}

/* object details */


.object-details{
  max-width: 560px;
  font-family: "Inter", Arial, Helvetica, sans-serif;
  color:#1f1f1f;
  line-height:1.7;
}


/* Artist */

.object-artist{
  font-size:1rem;
  margin-bottom:10px;
}

.artist-name{
  font-size:1.2rem;
  font-weight:600;
  color:#111;
  margin-bottom:0;
}

.artist-meta{
  font-size:0,95rem;
  font-weight:400;
  color:#666;
  margin-left:4px;
}

/* Title */

.object-title{
  font-size:1.0rem;
  font-style:italic;
  font-weight:300;
  margin-top:6px;
}

/* Date */

.object-date{
  font-size:.95rem;
  color:#666;
  margin-top:0;
}

/* Medium */

.object-medium{
  font-size:.95rem;
  margin-bottom:8px;
}

/* Description */

.object-description{
  font-size:.96rem;
  line-height:1.75;
  margin-bottom:22px;
}

/* Dimensions */

.object-dimensions{
  font-size:.95rem;
  margin-bottom:24px;
}

/* Section labels */

.catalog-label{
  font-size:.7rem;
  letter-spacing:.14em;
  font-weight:700;
  color:#333;
  margin-bottom:8px;
}

/* Condition / Provenance */

.object-condition,
.object-provenance{
  font-size:.95rem;
  line-height:1.5;
}

/* Accession */

.object-id-line{
  font-size:.85rem;
  color:#666;
  margin-bottom:16px;
}

/* Status */

.object-status{
  font-size:.95rem;
  margin-bottom:16px;
}

/* Marketplace note */

.object-market-note{
  font-size:.95rem;
  color:#444;
  line-height:1.7;
}

.object-specs p{
margin-bottom:6px;
font-size:15px;
}

.object-thumbs img.active-thumb{
border:2px solid #d4af37;
}

.object-nav{
display:flex;
justify-content:space-between;
align-items:center;
max-width:1200px;
margin:0 auto 12px auto;
padding:0 20px;
font-size:.9rem;
border-top:1px solid #e5e7eb;

}

.object-nav a{
text-decoration:none;
font-weight:600;
color:#444;
transition:opacity .2s;
}

.object-nav a:hover{
opacity:.6;
color:#000;
}

.postcard-item img{
  object-fit:cover;
  object-position: center;
}

.postcard-details p{
  margin:0 0 6px 0;
  line-height:1.35;
  display:flex;
  align-items:flex-start;
  gap:8px;
}

.postcard-details strong{
  min-width:140px;
  flex-shrink:0;
}

.postcard-title{
font-size:1.25rem;
font-style:italic;
font-weight:500;
line-height:1.3;
margin:0 0 4px 0;
color:#111827;
}

.postcard-description{
font-size:.95rem;
line-height:1.5;
color:#6b7280;
margin-bottom:22px;
padding-bottom:14px;
border-bottom:1px solid rgba(0,0,0,0.08);
}

.postcard-stamp-details{
margin-top:18px;
padding:12px 16px;
border-left:3px solid #d4af37; /* your gold */
background:rgba(0,0,0,0.02);
}

.postcard-stamp-details p{
margin:4px 0;
}

/* artwork + philatelic */
.artwork-item .catalog-image-wrap img,
.philatelic-item .catalog-image-wrap img{
  height:300px;
  object-fit:cover;
  object-position:center;
}

/* artwork + philatelic should sit tighter */
.artwork-item .catalog-meta h3,
.philatelic-item .catalog-meta h3{
  min-height:2.8em;
}

.detail-section-title{
margin-bottom:8px;
font-weight:600;
letter-spacing:0.04em;
text-transform:uppercase;
font-size:0.85rem;
color:#555;
}


/* =========================
   ARCHIVE-SOLD PAGES
========================= */
.catalog-image-wrap{
  position:relative;
  border-radius:6px;
  overflow:hidden;
  background:#f8f8f8;
  display:flex;
  align-items:center;
  justify-content:center;
}

.catalog-image-wrap img{
  width:100%;
  height:300px;
  display:block;
  object-fit:contain;
  object-position:center;
  margin-bottom:0;
}

/* postcards */
.postcard-item .catalog-image-wrap img{
  height:320px;
  object-fit:cover;
  object-position:center;
}

/* postcards need more title space */
.postcard-item .catalog-meta h3{
  min-height:4.1em;
}

/* BASE BADGE */

.archive-badge{
position:absolute;
top:12px;
right:12px;
z-index:2;
display:inline-block;
padding:5px 10px;
font-size:.7rem;
font-weight:600;
letter-spacing:.08em;
text-transform:uppercase;
border-radius:999px;
backdrop-filter:blur(4px);
-webkit-backdrop-filter:blur(4px);
}

/* SOLD → warmer, more prominent */

.archive-badge.sold{
background:rgba(0,0,0,.82);
color:#fff;
box-shadow:0 2px 10px rgba(0,0,0,.25);
}

/* ARCHIVED → lighter, quieter */

.archive-badge.archived{
background:rgba(255,255,255,.85);
color:#333;
border:1px solid rgba(0,0,0,.12);
box-shadow:0 2px 8px rgba(0,0,0,.12);
}

/* CATEGORY LABEL */

.archive-category{
margin:0 0 8px;
font-size:.75rem;
font-weight:600;
letter-spacing:.08em;
text-transform:uppercase;
color:#8a8f96;
}

/* =========================
   STAMP OBJECTS
========================= */

.stamp-details{
  display:none;
}

.stamp-details p{
  margin-bottom:0.5rem;
  line-height:1.35;
}

.object-pages{
margin-top:18px;
}

.object-pages-list{
list-style:none;
padding-left:0;
margin-top:8px;
}

.object-pages-list li{
position:relative;
padding-left:14px;
margin:0;
}

.object-pages-list li::before{
content:"•";
position:absolute;
left:0;
color:#d4af37; /* your gold */
}

/* =========================
   OBJECT PAGE
========================= */
/* fullscreen viewer */

.viewer{
display:none;
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,.9);
align-items:center;
justify-content:center;
z-index:999;
}

.viewer img{
max-width:90%;
max-height:90%;
}

.viewer-close{
position:absolute;
top:25px;
right:40px;
font-size:40px;
color:white;
cursor:pointer;
}

.viewer-nav{
position:absolute;
top:50%;
transform:translateY(-50%);
font-size:60px;
color:white;
cursor:pointer;
padding:20px;
}

.viewer-prev{
left:20px;
}

.viewer-next{
right:20px;
}

.related-section{
margin-top:16px;
padding-top:24px;
border-top:1px solid rgba(0,0,0,0.12);
}

/* =========================
   RESEARCH COLLECTION
========================= */

.research-page{
  max-width:900px;
  margin:40px auto;
  padding:0 20px 0 42px;
  color:#1f2933;
  position:relative;
}

.research-collection-page .research-page{
min-height:calc(100vh - 360px);
}

/* header */

.research-header{
  margin-bottom:12px;
}

.research-header h1{
  font-size:1.6rem;
  font-weight:600;
  margin-bottom:6px;
}

.research-subtitle{
  font-size:.95rem;
  color:#6b7280;
  letter-spacing:.2px;
}

/* gold divider */

.research-divider{
  width:48px;
  height:2px;
  background:#c6a54a;
  margin:10px 0 18px 0;
}

/* body text */

.research-summary p{
  font-size:1rem;
  line-height:1.6;
  margin-bottom:18px;
  max-width:58ch;
}

/* sections */

.research-page section{
  margin:0;
  padding:0;
}

/* vertical anchor line */
.research-page::before{
content:"";
position:absolute;
left:0;
top:24px;
bottom:24px;
width:1px;
background:linear-gradient(
to bottom,
transparent,
rgba(198,165,74,0.38),
rgba(198,165,74,0.38),
transparent
);
}

.research-page::after{
content:"";
position:absolute;
left:-1px;
top:48px;
width:3px;
height:40px;
background:#c6a54a;
border-radius:2px;
}

/* subtle section divider upgrade */
.research-page hr{
border:none;
border-top:1px solid rgba(0,0,0,0.08);
margin:28px 0;
}

.research-section{
  margin-bottom:20px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(0,0,0,0.06);
}

.research-section h2{
  font-size:1.05rem;
  font-weight:600;
  margin-bottom:6px;
  letter-spacing:.2px;
}

.research-section a{
color:#173a63; /* same as your title */
text-decoration:none;
transition:color .2s ease;
border-bottom:1px solid rgba(23,58,99,0.2);
}

.research-section a:hover{
color:#c6a54a; /* gold hover */
border-bottom:1px solid #c6a54a;
}

/* lists */

.research-section ul{
  padding-left:18px;
  line-height:1.6;
}

.research-section li{
  margin-bottom:6px;
}

.research-section:last-child{
  border-bottom:none;
}

.research-list-section{
margin-top:24px;
}

/* links */

.object-research{
margin:18px 0 8px;
}

.object-research-link{
margin:0 0 8px;
}

.research-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:10px;
  font-size:.95rem;
  color:#8b6f1f;
  text-decoration:none;
  border-bottom:1px solid rgba(198,165,74,0.35);
  padding-bottom:1px;
  transition:color .2s ease;
}

.research-link:hover{
  color:#c6a54a;
  border-color:#c6a54a;
}

.research-link i{
font-size:0.95rem;
}

/* sources feel slightly lighter */

.research-sources{
  border-top:1px solid rgba(0,0,0,0.08);
  padding-top:18px;
}

.research-sources li{
  color:#4b5563;
  margin:0 0 10px;
  line-height:1.7;
}

.research-sources ul{
margin:0;
padding-left:18px;
}

.research-sources a{
color:#173a63;
text-decoration:none;
transition:color .2s ease;
}

.research-sources a:visited{
color:#173a63;
}

.research-sources a:hover{
color:#c6a54a;
}


.research-summary p{
  margin-bottom:28px;
}

.research-note-content{
max-width:680px;
}

/* cards */

.research-card{
padding:26px 0 30px;
border-top:1px solid rgba(0,0,0,0.08);
}

.research-card:first-child{
border-top:1px solid rgba(0,0,0,0.08);
}

.research-card-title{
margin:0 0 14px;
font-size:2rem;
line-height:1.2;
font-weight:700;
letter-spacing:-0.4px;
}

.research-card-title a{
color:#173a63;
text-decoration:none;
transition:color .2s ease;
}

.research-card-title a:hover{
color:#c6a54a;
}

.research-card-summary{
margin:0 0 18px;
max-width:760px;
font-size:1.02rem;
line-height:1.7;
color:#1f2933;
}

.research-card-meta{
display:flex;
flex-wrap:wrap;
gap:8px 14px;
margin:0 0 16px;
}

.research-chip{
display:inline-block;
font-size:0.82rem;
line-height:1.2;
color:#6b7280;
padding:4px 10px;
border:1px solid rgba(198,165,74,0.28);
border-radius:999px;
background:rgba(255,255,255,0.55);
}

.research-card-object{
margin:0 0 14px;
font-size:0.86rem;
line-height:1.5;
color:#6b7280;
}

.research-card-object strong{
font-weight:600;
color:#4b5563;
}

.research-card-link{
margin:0;
}

.research-card-link a{
display:inline-flex;
align-items:center;
gap:8px;
font-size:0.98rem;
font-weight:600;
color:#a37f1f;
text-decoration:none;
transition:color .2s ease;
}

.research-card-link a:hover{
color:#c6a54a;
}

.empty-message{
margin:24px 0 0;
color:#6b7280;
}

/* =========================
   FOOTER
========================= */

.footer{
background:linear-gradient(
180deg,
#173a63,
#0f2f57
);
color:#ffffff;
padding:55px 20px;
border-top:2px solid #c6a54a;
   
width:100%;
max-width:100%;
box-sizing:border-box;
}

.footer-inner{
max-width:1180px;
margin:auto;
}

.footer-grid{
display:grid;
grid-template-columns:1.2fr 1fr 1fr;
gap:50px;
align-items:flex-start;
}

.footer-grid > div{
padding-right:25px;
}

.footer-grid > div:not(:last-child){
border-right:1px solid rgba(255,255,255,0.15);
}

.footer-brand strong{
font-size:20px;
font-weight:600;
letter-spacing:-0.2px;
display:block;
margin-bottom:12px;
}

.footer-brand p{
opacity:.75;
font-size:14px;
line-height:1.6;
margin-top:6px;
}

.footer-brand-row{
   display:flex;
   align-items:flex-start;
   gap:24px;
}

.footer-links{
display:flex;
flex-direction:column;
gap:12px;
margin-top:4px;
}

.footer-links a{
color:#ffffff;
text-decoration:none;
font-size:14px;
opacity:.85;
letter-spacing:.2px;
position:relative;
transition:opacity .2s ease;
}

.footer-links a::after{
content:"";
position:absolute;
left:0;
bottom:-3px;
width:0;
height:2px;
background:#c6a54a;
transition:width .25s ease;
}

.footer-links a:hover{
opacity:1;
}

.footer-links a:hover::after{
width:100%;
}

.footer-info{
font-size:13px;
opacity:.7;
line-height:1.6;
}

.footer-info p{
margin:6px 0;
}

.footer-info i{
color:#c6a54a;
margin-right:8px;
width:16px;
text-align:center;
}

.footer-contact{
display:flex;
align-items:flex-start;
gap:10px;
margin:8px 0;
font-size:13px;
}

.footer-contact i{
color:#c6a54a;
margin-top:3px;
}

.footer-contact-block{
   display:flex;
   flex-direction:column;
   gap:12px;
}

.footer-logo{
   width:100%;
   max-width:110px;
   height:auto;
   display:block;
   margin-bottom:18px;
}

.footer-support-button{
display:inline-block;
margin-top:14px;
padding:10px 16px;
background-color:#E9BE27;
color:#000;
font-weight:600;
text-decoration:none;
border-radius:6px;
border:1px solid rgba(0,0,0,0.08);
transition:all .2s ease;
margin-bottom: 20px;
}

.footer-support-button:hover{
background:linear-gradient(135deg,#e3c773,#d4b85f);
transform:translateY(-1px);
}

.footer-help-label{
font-size:16px;
color:#ffffff;
margin-bottom:6px;
}

/* =========================
   MOBILE
========================= */

.menu-toggle{
display:none;
font-size:26px;
cursor:pointer;
position:relative;
z-index:1100;
}

@media (max-width:768px){

/* general grids */
.card-grid{
grid-template-columns:1fr;
}

.gallery-grid{
grid-template-columns:1fr;
grid-template-rows:auto;
}

.gallery-item:first-child{
grid-row:auto;
}

.focus-grid{
grid-template-columns:1fr;
}

.focus-tech-link{
grid-row:span 1;
}


/* navigation */
.nav{
display:flex;
align-items:center;
justify-content:space-between;
gap:16px;
position:relative;
}

.logo{
flex:1;
min-width:0;
}

.menu{
display:none;
flex-direction:column;
position:absolute;
top:60px;
right:20px;
width:min(88vw, 320px);
max-width:calc(100vw - 40px);
background:#ffffff;
padding:20px;
box-shadow:0 6px 18px rgba(0,0,0,.15);
z-index:1200;
box-sizing:border-box;
overflow-x:hidden;
overflow-y:visible;
}

.menu.show{
display:flex;
}

.menu-toggle{
display:block;
margin-left:16px;
flex-shrink:0;
font-size:26px;
cursor:pointer;
}

.menu a{
display:block;
padding:10px 0;
white-space:normal;
}

.menu-dropdown{
width:100%;
}

.menu-dropdown > a{
display:block;
}

/* mobile dropdown fix (FINAL) */
.menu-dropdown .dropdown-menu{
position:static !important;
display:block !important;
width:100% !important;

margin-top:6px;
padding:6px 0 0 12px;

background:transparent !important;
box-shadow:none !important;
border:none !important;

opacity:1 !important;
visibility:visible !important;
transform:none !important;
}

.menu-dropdown .dropdown-menu a{
display:block;
padding:8px 0;
font-size:15px;
line-height:1.4;
white-space:normal;
}


/* object pages */
.object-layout{
display:grid;
grid-template-columns:1fr;
gap:28px;
padding:30px 20px;
}

.object-image,
.object-details{
width:100%;
}

.object-details{
max-width:100%;
}

.object-details h1{
font-size:24px;
line-height:1.25;
}

.object-specs p,
.object-description,
.object-provenance{
max-width:100%;
}

   
/* footer */
   
.footer{
padding:45px 20px;
}
   
.footer-grid{
display:grid;
grid-template-columns:1fr;
text-align:center;
gap:30px;
}

.footer-grid > div{
padding-right:0;
border-right:none;
}

.footer-grid > div:not(:last-child){
border-right:none;
}

.footer-links{
align-items:center;
}

.footer-contact{
justify-content:center;
}

.footer-info i,
.footer-contact i{
margin-right:6px;
}

.footer-brand-row{
flex-direction:column;
align-items:center;
justify-content:center;
}

.footer-logo{
max-width:160px;
margin:0 auto 16px;
}
   
.support-modal-content{
width:min(94vw, 580px);
margin:20px auto;
max-height:calc(100vh - 40px);
padding:24px 18px;
}
   
.support-contact-combo{
flex-direction:column;
gap:14px;
}
   
.support-divider{
display:none;
}

.support-form-grid{
grid-template-columns:1fr;
}
}

@media (min-width:1100px){

.hero h1{
font-size:48px;
}

}

a:focus,
.button:focus{
outline:2px solid #c6a54a;
outline-offset:3px;
}

/* =========================
   OBJECT PAGE MOBILE FIX
========================= */

@media (max-width: 900px){

  /* Main object page wrapper */
  .object-layout,
  .object-page,
  .object-container,
  .object-main{
    display:grid;
    grid-template-columns:1fr !important;
    gap:28px;
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  /* Let both columns shrink properly */
  .object-gallery,
  .object-details,
  .object-images,
  .object-info{
    min-width:0;
    width:100%;
    max-width:100%;
  }

  /* Main image block */
  .object-main-image,
  .main-image,
  .object-image{
    width:100%;
    max-width:100%;
    overflow:hidden;
  }

  .object-main-image img,
  .main-image img,
  .object-image img{
    display:block;
    width:100%;
    max-width:100%;
    height:auto;
  }

  /* Thumbnail row/grid */
  .object-thumbnails,
  .thumbnail-row,
  .object-thumb-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:12px;
    width:100%;
    max-width:100%;
  }

  .object-thumbnails img,
  .thumbnail-row img,
  .object-thumb-grid img{
    display:block;
    width:100%;
    max-width:100%;
    height:auto;
  }

  /* Text column */
  .object-details,
  .object-info{
    width:100%;
    max-width:100%;
    padding-right:0;
  }

  /* Prevent long text from forcing overflow */
  .object-details p,
  .object-details div,
  .object-details li,
  .object-info p,
  .object-info div,
  .object-info li{
    overflow-wrap:break-word;
    word-wrap:break-word;
  }
}

@media (max-width: 932px) and (orientation: landscape){

  .object-layout,
  .object-page,
  .object-container,
  .object-main{
    grid-template-columns:1fr !important;
  }

  .object-details,
  .object-info{
    width:100%;
    max-width:100%;
  }
}