/**
 * StackWright project inquiry modal.
 *
 * Styles the Fluent Forms markup (Fluent Forms' own CSS is not loaded on the
 * landing page). Layout follows the approved popup reference: editorial intro
 * on the left, form on the right; single column on tablets; full screen on phones.
 */

.sw-inquiry{
	--ink-0:#0a0a0b;--ink-1:#111112;--ink-2:#161617;--line:#2a2a2d;--line-soft:#ffffff14;
	--text:#ececec;--text-2:#a3a3a8;--text-3:#8b8b90;--hot:#ff3b2f;--hot-2:#e8392e;
	padding:0;border:0;background:transparent;color:var(--text);
	width:min(1196px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);
	overflow:visible;font-family:var(--font-body);
}
.sw-inquiry[open]{display:flex;animation:sw-modal-in .32s var(--ease-out)}
.sw-inquiry::backdrop{background:#060607d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

.sw-inquiry__panel{
	position:relative;display:grid;grid-template-columns:48fr 52fr;width:100%;max-height:inherit;
	border-radius:16px;overflow:hidden;background:var(--ink-1);
	border:1px solid var(--line-soft);box-shadow:0 40px 120px #000a,0 0 0 1px #00000080;
}

/* Each column is capped to the dialog height; the form column scrolls if needed. */
.sw-inquiry__intro,.sw-inquiry__body{max-height:calc(100dvh - 48px)}

/* Intro (left) */
.sw-inquiry__intro{
	position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;
	padding:clamp(28px,4.4vh,40px) 44px clamp(28px,5vh,48px);
	background:
		radial-gradient(ellipse 75% 50% at 42% 80%,#c41d1240,transparent 70%),
		radial-gradient(ellipse 90% 60% at 0% 100%,#5a0a0560,transparent 70%),
		var(--ink-0);
}
.sw-inquiry__intro::before{content:"";position:absolute;z-index:-1;width:980px;aspect-ratio:1;border-radius:50%;border:1px solid #ffffff0d;top:-430px;right:-640px}
.sw-inquiry__intro::after{
	content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
	background-image:linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px);background-size:64px 64px;
	-webkit-mask-image:radial-gradient(ellipse at 50% 70%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 70%,#000 20%,transparent 75%);
}
.sw-inquiry__logo{display:block;width:180px;height:auto;margin-bottom:clamp(32px,6.5vh,62px)}
.sw-inquiry__kicker{margin:0 0 20px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.22em;color:#bdbdc2}
.sw-inquiry__kicker span{padding:0 .7em;color:#77777c}
.sw-inquiry__title{margin:0 0 16px;font-family:var(--font-display);font-size:clamp(40px,3.6vw,52px);font-weight:500;line-height:1.06;letter-spacing:-.035em;color:#fff}
.sw-inquiry__dot{color:var(--hot)}
.sw-inquiry__lede{margin:0;max-width:23em;font-size:clamp(16px,1.35vw,19px);line-height:1.5;color:#b3b3b8;letter-spacing:-.01em}
.sw-inquiry__art{flex:1 1 0;min-height:220px;display:flex;align-items:center;justify-content:center;margin:4px -24px 0}
.sw-iso{width:auto;height:100%;max-width:100%;max-height:430px;overflow:visible}
.sw-inquiry__tags{display:grid;gap:7px;margin:0;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.24em;color:#c4c4c9}
.sw-inquiry__tags::before{content:"";width:24px;height:1px;background:var(--hot);margin-bottom:12px}

/* Isometric illustration */
.sw-iso-grid line{stroke:#ff4a3a;stroke-opacity:.09;stroke-width:.8}
.sw-iso-guides line{stroke:#ff5a46;stroke-opacity:.38;stroke-width:.8}
.sw-iso-markers *{fill:var(--hot)}
.sw-iso .top{fill:url(#sw-iso-top)}
.sw-iso .side-r{fill:#ff3b2f;fill-opacity:.16}
.sw-iso .side-l{fill:#ff3b2f;fill-opacity:.07}
.sw-iso .edge{fill:none;stroke:#ff6b57;stroke-opacity:.7;stroke-width:1;stroke-linejoin:round}
.sw-iso .edge-hot{stroke:#ffc2b8;stroke-opacity:.85}
.sw-iso .edge-dim{stroke-opacity:.3}
.sw-iso .is-hero .top{fill:url(#sw-iso-hero)}
.sw-iso .is-hero .side-r{fill-opacity:.45}
.sw-iso .is-hero .side-l{fill-opacity:.24}
.sw-iso .is-hero{filter:drop-shadow(0 0 10px #ff3b2f80)}
.sw-iso-layer{transform-box:view-box;animation:sw-iso-in .9s var(--ease-out) var(--d) both}
.sw-iso .is-hero{animation:sw-iso-in .9s var(--ease-out) var(--d) both,sw-iso-float 6s ease-in-out 1.8s infinite}
.sw-iso-glow{animation:sw-glow 6s ease-in-out 1.8s infinite}

/* Form column (right) */
.sw-inquiry__body{position:relative;display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:clamp(28px,4.2vh,44px) 36px clamp(20px,3vh,30px) 38px;background:linear-gradient(180deg,#141415,#101011)}
.sw-inquiry__close{
	position:absolute;top:16px;right:16px;z-index:2;width:44px;height:44px;display:grid;place-items:center;
	border:0;border-radius:50%;background:transparent;color:#f2f2f2;cursor:pointer;transition:background-color .2s;
}
.sw-inquiry__close svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.sw-inquiry__close:hover{background:#ffffff12}
.sw-inquiry :focus-visible{outline:2px solid #ff7a6b;outline-offset:3px}

.sw-inquiry__form{margin-top:18px}
.sw-inquiry .fluentform,.sw-inquiry .frm-fluent-form{margin:0}
.sw-inquiry .ff-el-group{margin:0 0 clamp(14px,1.9vh,20px)}
.sw-inquiry .ff-el-input--label{margin-bottom:9px}
.sw-inquiry .ff-el-input--label label{display:block;font-size:15px;font-weight:500;color:var(--text);letter-spacing:-.005em}
.sw-inquiry .ff-el-is-required label::after{content:" *";color:var(--hot)}

/* Project type: radio cards */
.sw-inquiry .sw-ff-choices .ff-el-input--label{margin-bottom:clamp(12px,1.6vh,16px)}
.sw-inquiry .sw-ff-choices .ff-el-input--label label{display:flex;align-items:center;gap:18px;padding-right:40px}
.sw-inquiry .sw-ff-choices .ff-el-input--label label::before{content:"";width:24px;height:1px;background:var(--hot);flex:none}
.sw-ff-optional{margin-left:auto;font-size:12px;color:var(--text-3);font-weight:400}
.sw-ff-cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vh,18px)}
.sw-ff-cards .ff-el-form-check{margin:0;display:flex}
.sw-ff-cards .ff-el-form-check-label{
	position:relative;flex:1;display:grid;grid-template-columns:32px 1fr;column-gap:13px;align-items:start;
	padding:clamp(14px,1.9vh,20px) 16px clamp(14px,1.9vh,20px) 18px;border:1px solid var(--line);border-radius:6px;
	background:#ffffff05;cursor:pointer;transition:border-color .2s,background-color .2s,box-shadow .2s;
}
.sw-ff-cards .ff-el-form-check-label:hover{border-color:#47474c;background:#ffffff09}
.sw-ff-cards .ff-el-form-check-input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.sw-ff-card-icon{width:30px;height:30px;color:#f2f2f2;transition:color .2s}
.sw-ff-card-icon svg{width:100%;height:100%;display:block}
.sw-ff-card-text{display:grid;gap:7px;padding-top:3px}
.sw-ff-card-title{font-size:15px;font-weight:500;color:#fff;line-height:1.3;padding-right:22px}
.sw-ff-card-desc{font-size:12.5px;line-height:1.5;color:var(--text-2)}
.sw-ff-card-check{position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--hot);opacity:0;transform:scale(.7);transition:opacity .2s,transform .2s}
.sw-ff-card-check::after{content:"";position:absolute;left:5.5px;top:3px;width:5px;height:9px;border:solid var(--hot);border-width:0 1.6px 1.6px 0;transform:rotate(45deg)}
.sw-ff-cards .ff-el-form-check-label:has(:checked){
	border-color:var(--hot-2);background:linear-gradient(160deg,#e8392e2e,#e8392e0d 70%);
	box-shadow:0 0 0 1px #e8392e66,0 10px 34px -12px #ff3b2f80,inset 0 0 30px #ff3b2f14;
}
.sw-ff-cards .ff-el-form-check-label:has(:checked) .sw-ff-card-icon{color:var(--hot)}
.sw-ff-cards .ff-el-form-check-label:has(:checked) .sw-ff-card-check{opacity:1;transform:none}
.sw-ff-cards .ff-el-form-check-label:has(:focus-visible){outline:2px solid #ff7a6b;outline-offset:3px}

/* Text inputs with leading icons */
.sw-inquiry .ff-el-input--content{position:relative}
.sw-inquiry .ff-el-form-control{
	display:block;width:100%;box-sizing:border-box;min-height:50px;padding:13px 16px 13px 56px;
	border:1px solid var(--line);border-radius:4px;background:var(--ink-2);color:#f4f4f4;
	font-family:var(--font-body);font-size:16px;line-height:1.45;transition:border-color .2s,box-shadow .2s;
}
.sw-inquiry textarea.ff-el-form-control{min-height:clamp(84px,11vh,96px);resize:vertical}
.sw-inquiry .ff-el-form-control::placeholder{color:#8e8e93;opacity:1}
.sw-inquiry .ff-el-form-control:hover{border-color:#3d3d41}
.sw-inquiry .ff-el-form-control:focus{outline:none;border-color:#ff5a46;box-shadow:0 0 0 3px #ff3b2f2e}
.sw-inquiry :is(.sw-ff-name,.sw-ff-email,.sw-ff-message) .ff-el-input--content::before{
	content:"";position:absolute;left:18px;top:14px;width:22px;height:22px;background:#a8a8ad;pointer-events:none;
	-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat;
}
.sw-inquiry .sw-ff-name{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20.5c1.2-4 4.3-6 8-6s6.8 2 8 6z'/%3E%3C/svg%3E")}
.sw-inquiry .sw-ff-email{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linejoin='round'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='1.5'/%3E%3Cpath d='m3.5 6.5 8.5 6.5 8.5-6.5'/%3E%3C/svg%3E")}
.sw-inquiry .sw-ff-message{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M6 2.5h8l4.5 4.5v14.5H6z'/%3E%3Cpath d='M13.5 2.5V7.5h5M9 12h6M9 15.5h6'/%3E%3C/svg%3E")}
.sw-inquiry .sw-ff-message .ff-el-input--content::before{top:16px}

/* Validation (Fluent Forms adds .ff-el-is-error and .error.text-danger) */
.sw-inquiry .ff-el-is-error .ff-el-form-control{border-color:#ff5a46;box-shadow:0 0 0 3px #ff3b2f1f}
.sw-inquiry .ff-el-is-error .ff-el-input--content::before{background:#ff7a6b}
.sw-inquiry .error.text-danger{margin-top:7px;font-size:13px;line-height:1.4;color:#ff8a7c}
.sw-inquiry .ff-errors-in-stack:not(:empty){margin-top:12px;padding:12px 14px;border:1px solid #ff5a4666;border-radius:4px;background:#ff3b2f14;color:#ffb0a6;font-size:13px}
.sw-inquiry .ff-errors-in-stack .error{margin:0}

/* Submit */
.sw-inquiry .ff_submit_btn_wrapper{margin:clamp(6px,1vh,10px) 0 0}
.sw-inquiry .ff-btn-submit{
	display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:58px;padding:14px 20px;
	border:0;border-radius:4px;cursor:pointer;color:#fff;font-family:var(--font-body);font-size:18px;font-weight:500;letter-spacing:-.01em;
	background:linear-gradient(95deg,#ff4334 0%,#ec2b20 45%,#b8150e 100%);
	box-shadow:0 0 0 1px #ff6a5566,0 16px 40px -10px #ff3b2f99,inset 0 1px 0 #ffffff33;
	transition:transform .2s,box-shadow .2s,filter .2s;
}
.sw-inquiry .ff-btn-submit::after{content:"\2197" / "";font-size:18px;font-weight:300;transition:transform .2s}
.sw-inquiry .ff-btn-submit:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 0 0 1px #ff7a6688,0 20px 46px -10px #ff3b2fb3,inset 0 1px 0 #ffffff40}
.sw-inquiry .ff-btn-submit:hover::after{transform:translate(2px,-2px)}
.sw-inquiry .ff-btn-submit:focus-visible{outline:2px solid #fff;outline-offset:3px}
.sw-inquiry .ff-btn-submit:disabled,.sw-inquiry .ff-btn-submit.disabled{cursor:progress;filter:saturate(.7) brightness(.9);transform:none}
.sw-inquiry .ff_submitting .ff-btn-submit::after{content:"";width:16px;height:16px;border-radius:50%;border:2px solid #ffffff66;border-top-color:#fff;animation:sw-spin .7s linear infinite}

/* Success message (Fluent Forms replaces the form after a stored submission) */
.sw-inquiry .ff-message-success{
	display:grid;grid-template-columns:40px 1fr;gap:16px;align-items:start;margin:8px 0 0;padding:24px;
	border:1px solid #e8392e80;border-radius:6px;background:linear-gradient(160deg,#e8392e26,#e8392e08 70%);color:#f2f2f2;font-size:16px;line-height:1.55;
}
.sw-inquiry .ff-message-success::before{content:"";width:40px;height:40px;border-radius:50%;border:1.5px solid var(--hot);background:no-repeat center/18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff3b2f' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
.sw-inquiry .ff-message-success p{margin:0}
.sw-inquiry__form:has(.ff-message-success){flex:1;display:flex;flex-direction:column;justify-content:center}
.sw-inquiry .ff-message-success:focus{outline:none}

/* Notes row */
.sw-inquiry__notes{list-style:none;margin:auto 0 0;padding:clamp(20px,3.2vh,42px) 0 0;display:grid;grid-template-columns:repeat(3,1fr)}
.sw-inquiry__notes li{display:flex;align-items:center;gap:12px;padding:0 14px;font-size:12px;line-height:1.5;color:var(--text-2)}
.sw-inquiry__notes li:first-child{padding-left:0}
.sw-inquiry__notes li+li{border-left:1px solid var(--line-soft)}
.sw-inquiry__notes svg{width:30px;height:30px;flex:none;fill:none;stroke:var(--hot);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

.sw-inquiry__unavailable{margin:auto 0;padding:40px 8px;color:var(--text-2);font-size:16px;line-height:1.6}
.sw-inquiry__admin-note{margin-top:12px;color:#ff8a7c;font-size:13px}

@keyframes sw-modal-in{from{opacity:0;transform:translateY(14px) scale(.985)}}
@keyframes sw-iso-in{from{opacity:0;transform:translateY(-26px)}}
@keyframes sw-iso-float{50%{transform:translateY(-7px)}}
@keyframes sw-glow{50%{opacity:.7}}
@keyframes sw-spin{to{transform:rotate(360deg)}}

/* Short desktop screens: let the illustration give way first. */
@media (min-width:1100px) and (max-height:800px){
	.sw-inquiry__tags{display:none}
	.sw-ff-card-desc{font-size:12px}
}

/* Tablet: single column, compact editorial header. */
@media (max-width:1099px){
	.sw-inquiry{width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 32px)}
	.sw-inquiry__panel{grid-template-columns:1fr;overflow-y:auto;overscroll-behavior:contain}
	.sw-inquiry__intro,.sw-inquiry__body{max-height:none}
	.sw-inquiry__intro{padding:32px 36px 30px;overflow:hidden}
	.sw-inquiry__logo{width:160px;margin-bottom:32px}
	.sw-inquiry__title{font-size:clamp(32px,5.4vw,44px);max-width:14em}
	.sw-inquiry__art{position:absolute;right:-60px;bottom:-70px;width:300px;margin:0;opacity:.55;z-index:-1}
	.sw-inquiry__tags{display:none}
	.sw-inquiry__body{position:static;overflow:visible;padding:30px 36px 28px}
	.sw-inquiry__close{top:14px;right:14px}
	.sw-inquiry__form{margin-top:0}
}

/* Phones: full-screen dialog that scrolls as one surface. */
@media (max-width:639px){
	.sw-inquiry{width:100vw;height:100dvh;max-height:none;margin:0}
	.sw-inquiry[open]{animation:sw-sheet-in .3s var(--ease-out)}
	.sw-inquiry__panel{height:100%;max-height:none;border-radius:0;border:0}
	.sw-inquiry__intro{padding:22px 20px 26px}
	.sw-inquiry__logo{width:148px;margin-bottom:26px}
	.sw-inquiry__kicker{font-size:10px;margin-bottom:14px}
	.sw-inquiry__title{font-size:clamp(28px,8.4vw,36px)}
	.sw-inquiry__lede{font-size:15.5px}
	.sw-inquiry__art{width:200px;right:-70px;bottom:-70px;opacity:.22}
	.sw-inquiry__body{padding:24px 20px calc(24px + env(safe-area-inset-bottom))}
	/* Keep the close button reachable while scrolling. */
	.sw-inquiry__close{position:fixed;top:max(10px,env(safe-area-inset-top));right:10px;background:#0a0a0bcc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 0 0 1px #ffffff1a}
	.sw-inquiry .sw-ff-choices .ff-el-input--label label{padding-right:0;gap:14px}
	.sw-ff-cards{grid-template-columns:1fr;gap:10px}
	.sw-ff-cards .ff-el-form-check-label{grid-template-columns:28px 1fr;padding:14px 44px 14px 16px;column-gap:14px}
	.sw-ff-card-icon{width:26px;height:26px}
	.sw-ff-card-text{gap:4px;padding-top:1px}
	.sw-ff-card-check{top:50%;margin-top:-10px;right:14px}
	.sw-inquiry__notes{grid-template-columns:1fr;gap:14px}
	.sw-inquiry__notes li,.sw-inquiry__notes li:first-child{padding:0}
	.sw-inquiry__notes li+li{border-left:0}
	.sw-inquiry__notes svg{width:26px;height:26px}
	@keyframes sw-sheet-in{from{opacity:0;transform:translateY(24px)}}
}

@media (prefers-reduced-motion:reduce){
	.sw-inquiry[open],.sw-iso-layer,.sw-iso .is-hero,.sw-iso-glow,.sw-inquiry .ff-btn-submit::after{animation:none!important}
	.sw-inquiry *{transition-duration:.01ms!important}
}
