/* =========================================================
   FOOTPRINTS PRODUCTS / COURSES SYSTEM
   Clean luxury editorial treatment
   ========================================================= */
.products-shell{width:min(1180px,calc(100% - 48px));margin:0 auto}
.products-hero{position:relative;overflow:hidden;padding:190px 0 105px;background:#f4f1eb}
.products-hero:after{content:"";position:absolute;width:360px;height:360px;border:1px solid rgba(200,90,23,.18);border-radius:50%;right:-120px;bottom:-190px;pointer-events:none}
.products-hero h1{position:relative;z-index:1;max-width:920px;margin:18px 0 24px;font-family:Outfit,sans-serif;font-size:clamp(50px,7vw,94px);line-height:.94;letter-spacing:-.058em}
.products-hero h1 em{font-style:normal;color:#c85a17}
.products-hero p,.products-heading p{max-width:700px;color:#666;font-size:18px;line-height:1.75}
.eyebrow{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#c85a17}
.products-section{padding:112px 0;background:#fff}
.products-services-section{background:#f4f1eb}
.products-heading{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:46px}
.products-heading-copy{max-width:760px}
.products-heading h2{font-family:Outfit,sans-serif;font-size:clamp(38px,5vw,64px);line-height:.98;margin:12px 0 16px;letter-spacing:-.045em}
.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.product-card{position:relative;display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid rgba(20,20,20,.1);border-radius:28px;overflow:hidden;transition:transform .4s cubic-bezier(.2,.75,.2,1),box-shadow .4s,border-color .4s}
.products-services-section .product-card{background:#fbfaf7}
.product-card:hover{transform:translateY(-7px);box-shadow:0 28px 70px rgba(20,20,20,.11);border-color:rgba(200,90,23,.35)}
.product-card.is-featured{border-color:rgba(200,90,23,.3)}
.product-card-top{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:23px 26px 0}
.product-type,.product-featured{font-size:9px;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:#777}
.product-featured{color:#c85a17}
.product-card-image{height:285px;margin-top:18px;overflow:hidden;background:#e9e5dd}
.product-card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s cubic-bezier(.2,.75,.2,1)}
.product-card:hover .product-card-image img{transform:scale(1.045)}
.product-card-body{display:flex;flex:1;flex-direction:column;padding:29px 28px 27px}
.product-card h3{font-family:Outfit,sans-serif;font-size:35px;line-height:1.02;letter-spacing:-.035em;margin:0 0 14px}
.product-card p{color:#686868;line-height:1.7;margin:0;max-width:600px}
.product-card-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:auto;padding-top:23px;margin-top:27px;border-top:1px solid rgba(20,20,20,.09);font-size:11px;color:#777;text-transform:uppercase;letter-spacing:.08em}
.product-card-footer a{display:inline-flex;align-items:center;gap:8px;color:#1c1c1c;text-decoration:none;font-weight:800;letter-spacing:.04em;transition:color .2s}
.product-card-footer a:hover{color:#c85a17}
.product-card-footer a span{font-size:17px;color:#c85a17;line-height:1}
.product-loading,.product-empty,.product-error{padding:40px;border:1px dashed rgba(20,20,20,.15);border-radius:20px;color:#777;background:rgba(255,255,255,.55)}
.product-error{max-width:800px;margin:180px auto}
.product-error strong{display:block;color:#1c1c1c;font-family:Outfit,sans-serif;font-size:26px;margin-bottom:8px}
.product-error a{display:inline-block;margin-top:18px;color:#c85a17;text-decoration:none;font-weight:700}

/* Detail */
.product-detail-hero{position:relative;overflow:hidden;padding:170px 0 105px;background:#f4f1eb}
.product-detail-hero:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(200,90,23,.14);border-radius:50%;right:-250px;top:-300px;pointer-events:none}
.product-back{display:inline-flex;align-items:center;gap:8px;margin-bottom:48px;color:#777;text-decoration:none;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.product-back:hover{color:#c85a17}
.product-detail-hero h1{position:relative;z-index:1;font-family:Outfit,sans-serif;font-size:clamp(54px,8vw,108px);line-height:.91;letter-spacing:-.065em;max-width:1050px;margin:18px 0 27px}
.product-lead{position:relative;z-index:1;max-width:760px;font-size:20px;line-height:1.7;color:#5f5f5f}
.product-apply-btn{margin-top:30px}
.product-detail-content{padding:105px 0}
.product-content-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:90px}
.product-main{font-size:18px;line-height:1.85;color:#3f3f3f;min-width:0}
.product-main h2{font-family:Outfit,sans-serif;font-size:43px;line-height:1.08;letter-spacing:-.035em;color:#1c1c1c;margin:0 0 18px;padding-top:35px}
.product-main h2:first-child{padding-top:0}
.product-main h3{font-family:Outfit,sans-serif;font-size:29px;line-height:1.15;color:#1c1c1c;margin:38px 0 12px}
.product-main p{margin:0 0 22px}
.product-main ul,.product-main ol{padding-left:25px;margin:0 0 26px}
.product-main li{padding-left:6px;margin:7px 0}
.product-aside{position:relative}
.product-apply-card{position:sticky;top:120px;padding:34px;background:#191919;color:#fff;border-radius:26px;box-shadow:0 25px 65px rgba(0,0,0,.15)}
.product-apply-card .eyebrow{color:#f58a0b}
.product-apply-card h2{font-family:Outfit,sans-serif;font-size:34px;line-height:1.02;letter-spacing:-.035em;margin:15px 0}
.product-apply-card p{color:#b9b9b9;line-height:1.65;margin-bottom:22px}

/* Application modal */
.application-modal{display:none;position:fixed;inset:0;z-index:9999;padding:20px}
.application-modal.is-open{display:flex;align-items:center;justify-content:center}
.application-backdrop{position:absolute;inset:0;background:rgba(8,8,8,.74);backdrop-filter:blur(12px)}
.application-dialog{position:relative;width:min(650px,100%);max-height:min(90vh,780px);overflow:auto;background:#f8f6f1;color:#1c1c1c;border:1px solid rgba(255,255,255,.15);border-radius:28px;padding:42px;z-index:1;box-shadow:0 35px 110px rgba(0,0,0,.4);animation:applicationIn .35s cubic-bezier(.2,.75,.2,1)}
@keyframes applicationIn{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.application-close{position:absolute;right:17px;top:15px;width:40px;height:40px;border:1px solid rgba(20,20,20,.1);border-radius:50%;background:#fff;font-size:25px;line-height:1;color:#555;cursor:pointer;transition:.2s}
.application-close:hover{background:#1c1c1c;color:#fff;transform:rotate(90deg)}
.application-dialog h2{font-family:Outfit,sans-serif;font-size:42px;line-height:.98;letter-spacing:-.04em;margin:12px 50px 12px 0}
.application-dialog>p{color:#666;line-height:1.6;margin:0}
.application-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0}
.application-fields label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:#555}
.application-fields label:last-child{grid-column:1/-1}
.application-fields input,.application-fields textarea{display:block;width:100%;margin-top:8px;border:1px solid #ded9d0;background:#fff;border-radius:13px;padding:14px 15px;outline:none;color:#1c1c1c;font-size:15px;transition:border-color .2s,box-shadow .2s}
.application-fields textarea{resize:vertical;min-height:120px}
.application-fields input:focus,.application-fields textarea:focus{border-color:#c85a17;box-shadow:0 0 0 4px rgba(200,90,23,.09)}
.application-status{min-height:22px;margin:14px 0 0;font-size:13px;line-height:1.5}
.application-status.success{color:#198754}.application-status.error{color:#b42318}
body.modal-open{overflow:hidden}

@media(max-width:900px){.products-shell{width:min(100% - 32px,1180px)}.products-heading{display:block}.products-heading p{margin-top:0}.product-grid{grid-template-columns:1fr}.product-content-grid{grid-template-columns:1fr;gap:45px}.product-aside{order:2}.product-apply-card{position:static}}
@media(max-width:650px){.products-shell{width:calc(100% - 28px)}.products-hero{padding:140px 0 78px}.products-section{padding:78px 0}.product-card-top{padding:20px 20px 0}.product-card-image{height:235px}.product-card-body{padding:25px 21px 23px}.product-card h3{font-size:30px}.product-card-footer{align-items:flex-start;flex-direction:column}.product-detail-hero{padding:140px 0 72px}.product-detail-content{padding:70px 0}.product-detail-hero h1{font-size:clamp(48px,14vw,76px)}.product-main{font-size:17px}.product-main h2{font-size:34px}.application-dialog{padding:34px 23px 25px;border-radius:23px}.application-dialog h2{font-size:34px}.application-fields{grid-template-columns:1fr;gap:15px}.application-fields label:last-child{grid-column:auto}}
