/* =========================================================
TEMPLATE MINIMAL
========================================================= */

:root{
--accent-color:#111;
}

/* =========================================================
BASE
========================================================= */

.template-minimal{
font-family:"Inter",system-ui,sans-serif;
color:#0f0f0f;
background:#fafafa;
}

.template-minimal h1,
.template-minimal h2,
.template-minimal h3{
font-family:"Inter",system-ui,sans-serif;
}

/* =========================================================
SECTIONS
========================================================= */

.template-minimal .section:not(.section-hero){
margin-bottom:0;
padding-left:8px;
padding-right:8px;
}

.template-minimal .layout-container{
max-width:1400px;
margin:auto;
padding-left:30px;
padding-right:30px;
box-sizing:border-box;
}

.template-minimal .section:not(.section-hero) > .layout-container{
background:transparent;
padding:24px 40px 44px;
border-radius:0;
box-shadow:none;
max-width:1380px;
}

/* =========================================================
HEADINGS
========================================================= */

.template-minimal h2{
text-align:center;
font-size:clamp(1.6rem,2.5vw,2.3rem);
margin:0 0 36px;
font-weight:700;
letter-spacing:-.03em;
}

/* =========================================================
ABOUT
========================================================= */

.template-minimal .ui-box{
max-width:900px;
margin:auto;
padding:22px 0;
text-align:center;
line-height:1.9;
border-top:1px solid rgba(0,0,0,.08);
border-bottom:1px solid rgba(0,0,0,.08);
}

/* =========================================================
GALLERY
========================================================= */

.template-minimal #upg-gallery{
display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:20px;
}

.template-minimal .upg-cell{
width:100%;
}

.template-minimal .photo-link,
.template-minimal .upg-box,
.template-minimal .upg-photo,
.template-minimal .upg-hover{
cursor:zoom-in;
}

.template-minimal .upg-box{
position:relative;
overflow:hidden;
border-radius:4px;
}

.template-minimal .upg-photo{
width:100%;
height:auto;
display:block;
transition:transform .35s ease, opacity .35s ease;
}

.template-minimal .upg-box:hover .upg-photo{
transform:scale(1.04);
opacity:.95;
}

.template-minimal .upg-hover{
position:absolute;
inset:0;
display:flex;
align-items:flex-end;
justify-content:center;
background:linear-gradient(to top,rgba(0,0,0,.5),transparent);
opacity:0;
transition:.25s;
pointer-events:none;
}

.template-minimal .upg-box:hover .upg-hover{
opacity:1;
}

.template-minimal .upg-title{
color:#fff;
font-size:14px;
padding:12px;
}

/* =========================================================
SERVICES
========================================================= */

.template-minimal .landing-services-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
gap:30px;
align-items:start;
}

.template-minimal .landing-service-card{
text-decoration:none;
color:#000;
display:flex;
flex-direction:column;
align-items:flex-start;
text-align:left;
padding:0;
background:transparent;
}

.template-minimal .landing-service-photo{
width:100%;
aspect-ratio:4 / 3;
overflow:hidden;
background:#f1f1f1;
position:relative;
}

.template-minimal .landing-service-photo img{
width:100%;
height:100%;
display:block;
object-fit:cover;
}

.template-minimal .landing-service-title{
font-size:20px;
margin:16px 0 8px;
font-weight:600;
text-align:left;
width:100%;
}

.template-minimal .landing-service-desc{
font-size:14px;
margin:0;
opacity:.78;
max-width:none;
text-align:left;
line-height:1.7;
}

.template-minimal .landing-service-badge{
display:none;
}

/* =========================================================
PRICING
========================================================= */

.template-minimal .landing-pricing-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:30px;
max-width:1000px;
margin:auto;
}

.template-minimal .landing-pricing-card{
text-align:center;
padding:22px 20px;
display:flex;
flex-direction:column;
align-items:center;
border:1px solid rgba(0,0,0,.09);
background:transparent;
}

.template-minimal .landing-pricing-card.highlight{
border-color:#111;
}

.template-minimal .landing-pricing-badge{
display:none;
}

.template-minimal .landing-price{
font-size:32px;
font-weight:700;
margin:14px 0;
}

.template-minimal .landing-pricing-desc{
line-height:1.75;
opacity:.8;
}

/* =========================================================
FAQ
========================================================= */

.template-minimal .landing-faq{
max-width:1000px;
margin:0 auto;
display:flex;
flex-direction:column;
gap:14px;
}

.template-minimal .landing-faq-item{
border:1px solid #d8d8d8;
background:transparent;
padding:0;
overflow:hidden;
transition:border-color .2s ease, box-shadow .2s ease;
}

.template-minimal .landing-faq-item:hover{
border-color:#bdbdbd;
}

.template-minimal .landing-faq-item.open{
border-color:#000;
box-shadow:0 8px 24px rgba(0,0,0,.05);
}

.template-minimal .landing-faq-question{
width:100%;
display:flex;
align-items:center;
justify-content:space-between;
gap:20px;
padding:18px 22px;
text-align:left;
background:transparent;
border:0;
cursor:pointer;
font-weight:600;
font-size:16px;
color:#000;
position:relative;
}

.template-minimal .landing-faq-question::after{
content:"+";
flex:0 0 auto;
font-size:24px;
font-weight:400;
line-height:1;
transition:transform .2s ease, opacity .2s ease;
}

.template-minimal .landing-faq-item.open .landing-faq-question::after{
content:"−";
}

.template-minimal .landing-faq-answer{
display:none;
padding:0 22px 22px 22px;
text-align:left;
line-height:1.8;
color:#333;
border-top:1px solid #ececec;
white-space:pre-line;
background:transparent;
}

.template-minimal .landing-faq-item.open .landing-faq-answer{
display:block;
}

/* =========================================================
CTA
========================================================= */

.template-minimal .landing-cta-buttons{
display:flex;
flex-wrap:wrap;
gap:14px;
justify-content:center;
}

.template-minimal .landing-btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
padding:10px 18px;
border:1px solid #000;
background:#fff;
color:#000;
text-decoration:none;
font-weight:600;
font-size:14px;
transition:.2s;
}

.template-minimal .landing-btn:hover{
background:#000;
color:#fff;
}

.template-minimal .cta-icon{
display:flex;
align-items:center;
justify-content:center;
}

.template-minimal .cta-icon img{
width:18px;
height:18px;
display:block;
}

.template-minimal .landing-btn:hover .cta-icon img{
filter:brightness(0) invert(1);
}

/* =========================================================
SOCIAL
========================================================= */

.template-minimal .landing-social-links{
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:16px;
}

.template-minimal .landing-social-btn{
width:42px;
height:42px;
border-radius:50%;
display:flex;
align-items:center;
justify-content:center;
border:1px solid #ddd;
background:transparent;
transition:.2s;
}

.template-minimal .landing-social-btn:hover{
background:#000;
border-color:#000;
}

.template-minimal .landing-social-btn img{
width:20px;
height:20px;
}

.template-minimal .landing-social-btn:hover img{
filter:invert(1);
}

/* =========================================================
CONTACT FORM
========================================================= */

.template-minimal .landing-contact-form{
max-width:820px;
margin:0 auto;
display:flex;
flex-direction:column;
gap:18px;
}

.template-minimal .landing-form-field{
display:flex;
flex-direction:column;
gap:8px;
}

.template-minimal .landing-form-field label{
font-size:14px;
font-weight:600;
color:#111;
}

.template-minimal .landing-form-field input,
.template-minimal .landing-form-field textarea{
width:100%;
padding:14px 16px;
border:1px solid #d8d8d8;
background:#fff;
color:#000;
font:inherit;
box-sizing:border-box;
outline:none;
transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.template-minimal .landing-form-field input{
min-height:48px;
}

.template-minimal .landing-form-field textarea{
min-height:160px;
resize:vertical;
line-height:1.7;
}

.template-minimal .landing-form-field input:focus,
.template-minimal .landing-form-field textarea:focus{
border-color:#000;
box-shadow:0 0 0 3px rgba(0,0,0,.06);
}

.template-minimal .landing-contact-form .btn,
.template-minimal .landing-contact-form .btn.btn-primary{
align-self:flex-start;
min-width:220px;
padding:12px 22px;
border:1px solid #000;
background:#000;
color:#fff;
font-weight:600;
font-size:14px;
cursor:pointer;
transition:background .2s ease, color .2s ease, opacity .2s ease;
}

.template-minimal .landing-contact-form .btn:hover,
.template-minimal .landing-contact-form .btn.btn-primary:hover{
background:#fff;
color:#000;
}

/* =========================================================
RESPONSIVE
========================================================= */

@media (max-width:900px){
.template-minimal #upg-gallery{
grid-template-columns:repeat(2,1fr);
}
}

@media (max-width:600px){
.template-minimal #upg-gallery{
grid-template-columns:1fr;
}

.template-minimal .layout-container{
padding-left:16px;
padding-right:16px;
}
}

/* =========================================================
FOOTER
========================================================= */

.template-minimal .landing-footer{
margin-top:60px;
padding:40px 0;
background:#fafafa;
position:relative;
}

.template-minimal .landing-footer::before{
content:"";
position:absolute;
top:0;
left:50%;
transform:translateX(-50%);
width:140px;
height:1px;
background:linear-gradient(to right,transparent,#bbb,transparent);
}

.template-minimal .landing-footer-inner{
max-width:1200px;
margin:auto;
display:flex;
align-items:center;
justify-content:space-between;
font-size:14px;
color:#666;
}

.template-minimal .landing-footer-copy{
font-weight:500;
}

.template-minimal .landing-footer-brand a{
color:#000;
text-decoration:none;
font-weight:600;
transition:.2s;
}

.template-minimal .landing-footer-brand a:hover{
opacity:.6;
}

@media (max-width:700px){
.template-minimal .landing-footer-inner{
flex-direction:column;
gap:8px;
text-align:center;
}
}