/*
 * Contact / Visit & Contact page-scoped composition.
 * Ports prototypes/6/30-contact.html into the WP theme. Reserve-cool DARK
 * register. All selectors are namespaced .rhinory-contact .ct-* (page-unique).
 * The v6 prototype palette tokens (--reserve / --acacia / etc.) are scoped onto
 * the .rhinory-contact wrapper so this file is self-contained and does not
 * collide with the theme's --rhinory-* tokens.
 * Brief docs/briefs/2026-06-02-port-30-contact.md.
 */

.rhinory-contact{
	/* v6 prototype palette, scoped to the contact surface. */
	--reserve:#0F1A14;
	--reserve-2:#152217;
	--reserve-3:#1b2c20;
	--ink:#0A0807;
	--ivory:#F1E8D6;
	--acacia:#D4A24C;
	--rhino:#8A7E70;
	--rule:rgba(241,232,214,0.16);
	--rule-soft:rgba(241,232,214,0.09);

	background:var(--ink);
	color:var(--ivory);
	font-family:"Inter Tight",system-ui,sans-serif;
}

.rhinory-contact .wrap{ max-width:1280px; margin:0 auto; padding:0 40px; }
@media (max-width:680px){ .rhinory-contact .wrap{ padding:0 20px; } }

.rhinory-contact a{ text-decoration:none; }

/* ---- HERO ---- */
.rhinory-contact .ct-hero{
	position:relative; background:var(--reserve); color:var(--ivory);
	overflow:hidden; border-bottom:1px solid var(--rule);
}
.rhinory-contact .ct-hero-img{
	position:absolute; inset:-6% 0 -10% 0;
	background-size:cover; background-position:center 56%;
	background-color:#141d18;
	filter:saturate(.9) contrast(1.04) brightness(.52);
	transform:translate3d(0, var(--hero-py, 0px), 0) scale(1.05);
	transform-origin:center 50%; will-change:transform;
}
.rhinory-contact .ct-hero-img.is-gradient{
	background-image:radial-gradient(120% 90% at 70% 20%, #1b2c20 0%, #141d18 45%, #0A0807 100%);
	filter:none;
}
@media (prefers-reduced-motion: reduce){ .rhinory-contact .ct-hero-img{ transform:scale(1.03) !important; } }
.rhinory-contact .ct-hero-img::after{
	content:""; position:absolute; inset:0;
	background:linear-gradient(180deg, rgba(15,26,20,.58) 0%, rgba(15,26,20,.32) 42%, rgba(10,8,7,.95) 100%);
}
.rhinory-contact .ct-hero-inner{ position:relative; z-index:2; padding:128px 0 56px 0; }
@media (max-width:680px){ .rhinory-contact .ct-hero-inner{ padding:96px 0 44px 0; } }
.rhinory-contact .ct-eyebrow{
	font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:0.22em;
	text-transform:uppercase; color:var(--acacia); font-weight:500;
}
.rhinory-contact .ct-hero h1{
	font-family:"Cormorant Garamond",Georgia,serif; font-weight:400;
	font-size:clamp(52px,8vw,116px); line-height:.94; letter-spacing:-0.016em;
	margin:20px 0 22px 0; color:var(--ivory); text-wrap:pretty;
}
.rhinory-contact .ct-hero h1 em{ font-style:italic; font-weight:300; color:var(--acacia); }
.rhinory-contact .ct-hero .sub{
	font-size:18px; line-height:1.62; max-width:54ch;
	color:rgba(241,232,214,.92); margin:0 0 30px 0;
}
.rhinory-contact .ct-hero-quick{
	display:flex; flex-wrap:wrap; gap:0; align-items:stretch;
	border-top:1px solid var(--rule); padding-top:22px;
}
.rhinory-contact .ct-hero-quick .qf{
	display:flex; flex-direction:column; gap:3px;
	padding-right:34px; margin-right:34px;
	border-right:1px solid var(--rule);
}
.rhinory-contact .ct-hero-quick .qf:last-child{ border-right:none; margin-right:0; padding-right:0; }
.rhinory-contact .ct-hero-quick .qf .lbl{
	font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:0.2em;
	text-transform:uppercase; color:rgba(241,232,214,.55);
}
.rhinory-contact .ct-hero-quick .qf .val{ font-size:15px; color:var(--ivory); line-height:1.4; }
.rhinory-contact .ct-hero-quick .qf a.val{ color:var(--acacia); transition:opacity .18s; }
.rhinory-contact .ct-hero-quick .qf a.val:hover{ opacity:.78; }
@media (max-width:640px){
	.rhinory-contact .ct-hero-quick .qf{ border-right:none; margin-right:0; padding-right:0; width:100%; padding-bottom:14px; margin-bottom:14px; border-bottom:1px solid var(--rule-soft); }
	.rhinory-contact .ct-hero-quick .qf:last-child{ border-bottom:none; padding-bottom:0; margin-bottom:0; }
}

/* ---- shared section shells ---- */
.rhinory-contact .ct-sec{ padding:96px 0; border-bottom:1px solid var(--rule); }
.rhinory-contact .ct-sec.ink{ background:var(--ink); }
.rhinory-contact .ct-sec.reserve{ background:var(--reserve); }
.rhinory-contact .ct-sec-head{ max-width:62ch; margin:0 0 48px 0; }
.rhinory-contact .ct-sec-head .stamp{
	font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:0.24em;
	text-transform:uppercase; color:var(--acacia);
	display:inline-flex; align-items:center; gap:12px;
}
.rhinory-contact .ct-sec-head .stamp::before{ content:""; width:24px; height:1px; background:var(--acacia); }
.rhinory-contact .ct-sec-head h2{
	font-family:"Cormorant Garamond",serif; font-weight:300; font-style:italic;
	font-size:clamp(34px,4.2vw,56px); line-height:1.02; letter-spacing:-0.01em;
	margin:18px 0 0; color:var(--ivory); text-wrap:balance;
}
.rhinory-contact .ct-sec-head h2 em{ font-style:italic; color:var(--acacia); }
.rhinory-contact .ct-sec-head .lede{
	font-size:16px; line-height:1.7; color:rgba(241,232,214,.74);
	margin:18px 0 0; max-width:56ch;
}
.rhinory-contact .ct-sec-head .lede a{ color:var(--acacia); text-decoration:underline; text-underline-offset:2px; }

/* ---- FIND US: details + map ---- */
.rhinory-contact .ct-locate{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:start; }
@media (max-width:920px){ .rhinory-contact .ct-locate{ grid-template-columns:1fr; gap:44px; } }

.rhinory-contact .ct-details{ border:1px solid var(--rule); background:var(--reserve-2); }
.rhinory-contact .ct-row{
	display:grid; grid-template-columns:96px 1fr auto; gap:20px; align-items:start;
	padding:22px 26px; border-bottom:1px solid var(--rule-soft);
}
.rhinory-contact .ct-row:last-child{ border-bottom:none; }
.rhinory-contact .ct-row .ct-k{
	font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:0.16em;
	text-transform:uppercase; color:rgba(241,232,214,.5); padding-top:4px; line-height:1.5;
}
.rhinory-contact .ct-row .ct-v{ font-size:17px; line-height:1.5; color:var(--ivory); }
.rhinory-contact .ct-row .ct-v a{ color:var(--acacia); transition:opacity .18s; }
.rhinory-contact .ct-row .ct-v a:hover{ opacity:.78; }
.rhinory-contact .ct-row .ct-v .sub{
	display:block; margin-top:3px; font-size:13px; color:rgba(241,232,214,.55); line-height:1.45;
}
.rhinory-contact .ct-row .ct-v .big{
	font-family:"Cormorant Garamond",serif; font-style:italic; font-weight:400;
	font-size:24px; color:var(--ivory); line-height:1.15;
}
.rhinory-contact .ct-copy{
	align-self:start; margin-top:2px;
	width:32px; height:32px; flex-shrink:0;
	display:inline-flex; align-items:center; justify-content:center;
	border:1px solid var(--rule); color:rgba(241,232,214,.6); background:transparent;
	cursor:pointer; transition:border-color .18s, color .18s, background .18s;
}
.rhinory-contact .ct-copy svg{ width:14px; height:14px; }
.rhinory-contact .ct-copy:hover{ border-color:var(--acacia); color:var(--acacia); }
.rhinory-contact .ct-copy[data-copied="true"]{ background:var(--acacia); border-color:var(--acacia); color:var(--reserve); }

.rhinory-contact .ct-social{ display:flex; gap:10px; flex-wrap:wrap; }
.rhinory-contact .ct-social a{
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	padding:9px 14px; border:1px solid var(--rule); color:var(--ivory);
	font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:0.16em;
	text-transform:uppercase; transition:border-color .18s, color .18s, background .18s;
}
.rhinory-contact .ct-social a:hover{ border-color:var(--acacia); color:var(--acacia); background:rgba(216,180,79,.05); }

/* map column */
.rhinory-contact .ct-map-wrap{ display:flex; flex-direction:column; }
.rhinory-contact .ct-map{
	position:relative; aspect-ratio:1.5/1; border:1px solid var(--rule);
	background:var(--reserve-2); overflow:hidden;
}
.rhinory-contact .ct-map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:saturate(.92) contrast(1.02); }
.rhinory-contact .ct-map-flag{
	position:absolute; top:14px; left:14px; z-index:2;
	font-family:"JetBrains Mono",monospace; font-size:8.5px; letter-spacing:0.18em;
	text-transform:uppercase; color:var(--reserve); background:var(--acacia);
	padding:5px 10px; font-weight:500;
}
.rhinory-contact .ct-map-foot{
	display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
	border:1px solid var(--rule); border-top:none; background:var(--reserve-2);
	padding:18px 22px;
}
.rhinory-contact .ct-map-foot .coords{
	font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:0.1em;
	color:rgba(241,232,214,.6);
}
.rhinory-contact .ct-map-foot .coords b{ color:var(--ivory); font-weight:500; }
.rhinory-contact .ct-map-btn{
	display:inline-flex; align-items:center; gap:9px;
	padding:10px 16px; border:1px solid var(--acacia); color:var(--acacia); background:transparent;
	font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:0.16em;
	text-transform:uppercase; transition:background .18s, color .18s;
}
.rhinory-contact .ct-map-btn:hover{ background:var(--acacia); color:var(--reserve); }
.rhinory-contact .ct-map-btn svg{ width:13px; height:13px; }

/* east-of-town orientation note */
.rhinory-contact .ct-orient{
	margin-top:22px; border-left:2px solid var(--acacia);
	background:rgba(216,180,79,.05); padding:20px 24px;
	display:flex; gap:16px; align-items:flex-start;
}
.rhinory-contact .ct-orient .compass{
	flex-shrink:0; width:38px; height:38px; border:1px solid var(--acacia);
	border-radius:50%; display:flex; align-items:center; justify-content:center;
	color:var(--acacia); font-family:"JetBrains Mono",monospace; font-size:12px; font-weight:500;
}
.rhinory-contact .ct-orient p{ margin:0; font-size:14.5px; line-height:1.6; color:rgba(241,232,214,.82); }
.rhinory-contact .ct-orient p b{ color:var(--acacia); font-weight:500; }

/* ---- GETTING HERE: orientation + route cards ---- */
.rhinory-contact .ct-geo{
	border:1px solid var(--rule); background:linear-gradient(160deg, var(--reserve-3) 0%, var(--reserve) 100%);
	padding:34px 38px; margin-bottom:40px;
	display:grid; grid-template-columns:auto 1fr; gap:30px; align-items:center;
}
@media (max-width:760px){ .rhinory-contact .ct-geo{ grid-template-columns:1fr; gap:22px; padding:28px 26px; } }
.rhinory-contact .ct-geo-axis{
	display:flex; align-items:center; gap:0;
	font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:0.16em;
	text-transform:uppercase; white-space:nowrap;
}
.rhinory-contact .ct-geo-axis .town{ color:rgba(241,232,214,.55); }
.rhinory-contact .ct-geo-axis .road{
	flex:0 0 auto; position:relative; height:1px; width:64px; background:var(--acacia); margin:0 14px;
}
.rhinory-contact .ct-geo-axis .road::after{
	content:""; position:absolute; right:0; top:-3px;
	border-left:7px solid var(--acacia); border-top:3.5px solid transparent; border-bottom:3.5px solid transparent;
}
.rhinory-contact .ct-geo-axis .road .mi{
	position:absolute; left:50%; top:-22px; transform:translateX(-50%);
	font-size:9px; letter-spacing:0.14em; color:rgba(241,232,214,.5);
}
.rhinory-contact .ct-geo-axis .here{
	color:var(--acacia); border:1px solid var(--acacia); padding:6px 11px; background:rgba(216,180,79,.08);
}
.rhinory-contact .ct-geo p{ margin:0; font-size:16px; line-height:1.65; color:rgba(241,232,214,.86); }
.rhinory-contact .ct-geo p b{ color:var(--acacia); font-weight:500; }

.rhinory-contact .ct-routes{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
@media (max-width:760px){ .rhinory-contact .ct-routes{ grid-template-columns:1fr; } }
.rhinory-contact .ct-route{
	position:relative; border:1px solid var(--rule); background:var(--reserve-2);
	padding:30px 32px 26px; display:flex; flex-direction:column; gap:0;
	transition:transform .25s, border-color .25s;
}
.rhinory-contact .ct-route:hover{ transform:translateY(-3px); border-color:var(--acacia); }
.rhinory-contact .ct-route-top{
	display:flex; align-items:baseline; justify-content:space-between; gap:16px;
	padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--rule-soft);
}
.rhinory-contact .ct-route-from{
	font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:0.18em;
	text-transform:uppercase; color:rgba(241,232,214,.5); margin-bottom:6px;
}
.rhinory-contact .ct-route-city{
	font-family:"Cormorant Garamond",serif; font-style:italic; font-weight:400;
	font-size:32px; line-height:1; color:var(--ivory);
}
.rhinory-contact .ct-route-metrics{ text-align:right; flex-shrink:0; }
.rhinory-contact .ct-route-metrics .mi{
	font-family:"Cormorant Garamond",serif; font-size:30px; color:var(--acacia); line-height:1;
}
.rhinory-contact .ct-route-metrics .mi small{ font-size:15px; }
.rhinory-contact .ct-route-metrics .time{
	display:block; margin-top:5px;
	font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:0.12em;
	text-transform:uppercase; color:rgba(241,232,214,.55);
}
.rhinory-contact .ct-route-path{ font-size:14.5px; line-height:1.6; color:rgba(241,232,214,.78); margin:0 0 6px; }
.rhinory-contact .ct-route-path .hw{ color:var(--acacia); font-weight:500; }
.rhinory-contact .ct-route-note{
	font-size:13px; line-height:1.55; color:rgba(241,232,214,.58); margin:6px 0 0;
}
.rhinory-contact .ct-route-note b{ color:var(--acacia); font-weight:500; }
.rhinory-contact .ct-route-foot{
	margin-top:20px; padding-top:16px; border-top:1px solid var(--rule-soft);
	display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.rhinory-contact .ct-route-tag{
	font-family:"JetBrains Mono",monospace; font-size:9px; letter-spacing:0.14em;
	text-transform:uppercase; color:rgba(241,232,214,.45);
}
.rhinory-contact .ct-route-tag b{ color:var(--acacia); font-weight:500; }
.rhinory-contact .ct-route-link{
	display:inline-flex; align-items:center; gap:8px; color:var(--acacia);
	font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:0.14em;
	text-transform:uppercase; transition:gap .18s;
}
.rhinory-contact .ct-route-link:hover{ gap:13px; }

.rhinory-contact .ct-dir-note{
	margin-top:30px; font-family:"JetBrains Mono",monospace; font-size:10.5px;
	letter-spacing:0.1em; color:var(--rhino); line-height:1.7;
}
.rhinory-contact .ct-dir-note b{ color:rgba(241,232,214,.7); font-weight:500; }

/* ---- PRESS CROSS-LINK ---- */
.rhinory-contact .ct-press{ background:var(--ink); border-bottom:1px solid var(--rule); }
.rhinory-contact .ct-press .row{
	display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
	padding:42px 0;
}
.rhinory-contact .ct-press .t{ max-width:62ch; }
.rhinory-contact .ct-press .t .eye{
	font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:0.2em;
	text-transform:uppercase; color:var(--acacia); display:block; margin-bottom:8px;
}
.rhinory-contact .ct-press .t p{ margin:0; font-size:16px; line-height:1.6; color:rgba(241,232,214,.78); }
.rhinory-contact .ct-press .t p b{ color:var(--ivory); font-weight:500; }
.rhinory-contact .ct-press a.go{
	display:inline-flex; align-items:center; gap:10px; flex-shrink:0;
	padding:13px 22px; border:1px solid var(--acacia); color:var(--acacia);
	font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:0.16em;
	text-transform:uppercase; transition:background .18s, color .18s;
}
.rhinory-contact .ct-press a.go:hover{ background:var(--acacia); color:var(--reserve); }

/* ---- reveal-on-scroll (armed by contact.js) ---- */
.rhinory-contact.ct-anim .ct-rev{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.rhinory-contact.ct-anim .ct-rev.visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
	.rhinory-contact.ct-anim .ct-rev{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ---- editor preview ---- */
.rhinory-contact.ct-editor-preview{ padding:24px; }
.rhinory-contact .ct-editor-note{
	font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:0.08em;
	text-transform:uppercase; color:var(--acacia); margin:18px 0 6px;
}
.rhinory-contact .ct-editor-group{
	border:1px dashed var(--rule); padding:14px 18px; margin:10px 0 22px;
}
