:root{--bg:#edf3f7;--bg-strong:#dbe5ee;--surface:rgba(246,250,253,.86);--surface-solid:#f8fbfd;--surface-muted:#e5edf4;--surface-inset:#d9e4ed;--line:rgba(111,131,147,.16);--ink:#162531;--ink-soft:#475c6c;--ink-muted:#718595;--accent:#0c7b86;--accent-strong:#085d66;--accent-soft:rgba(12,123,134,.14);--accent-contrast:#f4fbfc;--success:#1c8768;--danger:#b85871;--shadow:0 12px 28px rgba(39,64,89,.1);--shadow-soft:0 8px 18px rgba(39,64,89,.07);--radius:28px;--radius-sm:20px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}.gallery-open,.gallery-open body{overflow:hidden;overscroll-behavior:none}body{background:radial-gradient(circle at top left,rgba(119,159,204,.24),transparent 28%),radial-gradient(circle at top right,rgba(109,92,255,.14),transparent 30%),linear-gradient(180deg,var(--bg),var(--bg-strong));color:var(--ink);font-family:Manrope,system-ui,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}.neo-page{min-height:100vh}.neo-shell{width:min(1180px,calc(100% - 2rem));margin:auto;padding:2rem 0}.neo-panel,.booking-panel{background:var(--surface);border:1px solid color-mix(in srgb,var(--accent) 12%,var(--line));border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(22px)}.neo-panel-soft{background:var(--surface-solid);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-soft)}.neo-inset{background:var(--surface-inset);border:1px solid var(--line);border-radius:18px}.property-title{display:flex;align-items:end;margin-bottom:1.5rem;padding:1.5rem}.property-title h1{margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(1.8rem,3vw,2.55rem);font-weight:500;letter-spacing:-.04em}.property-location{display:flex;align-items:center;gap:.45rem;margin:.5rem 0 0;color:var(--ink-soft);font-size:.88rem}.islay-mark{width:1.4rem;height:1.4rem;flex:none;background:currentColor;mask:url(/icons/islay.svg) center / contain no-repeat;-webkit-mask:url(/icons/islay.svg) center / contain no-repeat}.property-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:2.5rem}.property-layout>.gallery,.property-main{grid-column:1}.property-booking{grid-column:2;grid-row:1 / span 2;position:sticky;top:1.5rem;height:max-content}.gallery{position:relative;display:grid;grid-template-columns:3fr 2fr;gap:6px;height:26rem;margin-bottom:1.5rem;overflow:hidden;border-radius:28px;isolation:isolate;box-shadow:var(--shadow)}.gallery button{position:relative;z-index:1;overflow:hidden;border:0;padding:0;background:var(--surface-muted)}.gallery button:focus-visible{outline:0}.gallery__hero{grid-row:span 2;border-radius:22px 0 0 22px}.gallery__grid{display:grid;grid-row:span 2;min-height:0;height:100%;grid-template:1fr 1fr/repeat(2,1fr);gap:6px;overflow:hidden;border-radius:0 22px 22px 0}.gallery img{width:100%;height:100%;object-fit:cover}.gallery__hero span{position:absolute;right:1rem;bottom:1rem;border:1px solid var(--line);border-radius:16px;background:var(--surface-solid);box-shadow:var(--shadow-soft);padding:.65rem .85rem;color:var(--ink);font-size:.75rem;font-weight:700}.gallery-dialog{max-width:min(1100px,94vw);max-height:92vh;padding:0;border:0;border-radius:18px;background:#fff;touch-action:none;overscroll-behavior:none}.gallery-dialog:focus,.gallery-dialog:focus-visible{outline:0}.gallery-dialog::backdrop{background:#162531e0}.gallery-dialog img{display:block;max-width:100%;max-height:80vh;min-height:60vh;object-fit:contain}.gallery-dialog__close,.gallery-dialog__nav{position:absolute;z-index:1;display:grid;width:29px;height:29px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.14);border-radius:50%;background:#253444e6;color:#fff;box-shadow:0 8px 20px #00000038;font-size:1.25rem;line-height:1}.gallery-dialog__nav svg{display:block;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.gallery-dialog__close:focus-visible,.gallery-dialog__nav:focus-visible{outline:2px solid #fff;outline-offset:3px;box-shadow:0 0 0 5px #4fd2cb8c,0 8px 20px #00000038}.gallery-dialog__close{top:1rem;left:1rem}.gallery-dialog__nav{top:50%;font-size:2.6rem;transform:translateY(-50%)}.gallery-dialog__nav--previous{left:1rem}.gallery-dialog__nav--next{right:1rem}.gallery-dialog p{position:absolute;top:1rem;right:1rem;margin:0;font:500 .75rem Roboto Mono,monospace}.property-stats{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;color:var(--ink-soft);font-size:.85rem}.property-stats span{display:flex;align-items:center;gap:.45rem}.stat-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.neo-divider{height:1px;margin:1.5rem 0;background:linear-gradient(90deg,transparent,rgba(123,144,155,.28),transparent)}.property-section{margin:1.5rem 0}.property-section h2{margin:0 0 1rem;font-size:1.25rem}.neo-copy{margin:0 0 1rem;color:var(--ink-soft);line-height:1.68}.licence{padding:1rem 1.25rem}.licence p{margin:0;color:var(--ink-muted);font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.licence strong{display:block;margin-top:.45rem}.amenity-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:0;padding:0;list-style:none}.amenity-list li{display:flex;gap:.6rem;color:var(--ink-soft);font-size:.85rem}.amenity-list span{color:#9aa9b4}.house-rules>div{display:flex;flex-wrap:wrap;gap:.5rem}.house-rules span{border-radius:999px;padding:.38rem .7rem;font-size:.72rem;font-weight:700}.rule-good{background:#1c876814;color:var(--success)}.rule-no{background:#b8587114;color:var(--danger);text-decoration:line-through}.map-location{margin:0 0 1rem}.property-section--map{margin-bottom:2rem}.map-frame{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-soft)}.map-frame iframe{display:block;width:100%;height:400px;border:0}.booking-panel{padding:1rem}.booking-panel__heading{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem .3rem 1rem}.booking-panel__heading p{margin:0;font-size:.88rem}.booking-panel__heading strong{font-size:1.5rem}.booking-panel__heading span,.calendar-status{color:var(--ink-muted);font-size:.75rem}.calendar-close{display:none;width:30px;height:30px;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:1.5rem;line-height:1}.calendar-close:hover{background:var(--accent-soft)}.calendar-status{min-height:2.4rem;padding:.45rem .25rem}.date-summary{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:18px;background:var(--surface-inset)}.date-summary button{border:0;background:transparent;padding:.8rem;color:var(--ink);text-align:left}.date-summary button+button{border-left:1px solid var(--line)}.date-summary span{display:block;color:var(--ink-muted);font-size:.66rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.date-summary strong{display:block;margin-top:.25rem;font-size:.77rem}.calendar{display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;padding:1rem 0 0}.booking-panel.is-calendar-open .calendar{display:grid}.calendar-controls{display:none;align-items:center;justify-content:space-between;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--line)}.booking-panel.is-calendar-open .calendar-controls{display:flex}.calendar-controls button,.neo-button{border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,var(--surface-solid),var(--surface-muted));box-shadow:var(--shadow-soft);padding:.55rem .8rem;color:var(--ink);font-weight:700}.calendar-controls [data-calendar-clear]{border:0;background:transparent;box-shadow:none;color:var(--ink-muted);padding-inline:0;text-decoration:underline}.calendar-month__heading{display:grid;grid-template-columns:2rem 1fr 2rem;align-items:center;margin-bottom:.7rem}.calendar-month__heading h3{margin:0;color:var(--ink);font-size:.8rem;font-weight:700;text-align:center}.calendar-month__heading button{width:2rem;height:2rem;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:1.55rem;line-height:1;cursor:pointer}.calendar-month__heading button:hover{background:var(--accent-soft)}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays{margin-bottom:.25rem;color:var(--ink-muted);font-size:.56rem;text-align:center}.calendar-days{row-gap:.15rem}.calendar-days button{position:relative;aspect-ratio:1;justify-self:center;width:min(100%,2rem);border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:.68rem;font-weight:600}.calendar-days button:hover:not(:disabled){background:var(--accent-soft)}.calendar-days button:disabled{color:#a3adba;cursor:not-allowed}.calendar-days button.is-unavailable{color:var(--ink-muted);text-decoration:line-through}.calendar-days button.is-selected{background:var(--accent);color:var(--accent-contrast)}.calendar-days button.is-between{border-radius:0;background:var(--accent-soft)}.calendar-days button.is-selected+.is-between{border-radius:0}@media(min-width:901px){.booking-panel.is-calendar-open{position:relative;z-index:4;width:540px;padding:1.1rem;box-shadow:0 26px 64px #1d2f4142,0 8px 22px #1d2f4124;transform:translate(calc(380px - 100%))}.booking-panel.is-calendar-open .calendar-close{display:grid}.booking-panel.is-calendar-open .calendar{gap:1.45rem;padding-top:1rem}.booking-panel.is-calendar-open .calendar-month__heading{margin-bottom:.75rem}.booking-panel.is-calendar-open .calendar-month__heading h3{font-size:.9rem}.booking-panel.is-calendar-open .calendar-weekdays{margin-bottom:.35rem;font-size:.64rem}.booking-panel.is-calendar-open .calendar-days{row-gap:.25rem}.booking-panel.is-calendar-open .calendar-days button{width:2.05rem;font-size:.75rem}.booking-panel.is-calendar-open .calendar-controls{margin-top:1.1rem;padding-top:.85rem}.booking-panel.is-calendar-open .booking-panel__submit{display:none}}.price-summary{display:flex;justify-content:space-between;margin-top:1rem;padding:.75rem 0;border-block:1px solid var(--line);font-size:.8rem}.price-summary[hidden]{display:none}.booking-panel__submit,.neo-button-primary{border:0;border-radius:16px;background:linear-gradient(145deg,var(--accent),var(--accent-strong));box-shadow:var(--shadow-soft);padding:.82rem;color:var(--accent-contrast);font-size:.78rem;font-weight:700}.booking-panel__submit{width:100%;margin-top:1.2rem}.booking-panel__submit:disabled,.neo-button:disabled{cursor:not-allowed;opacity:.6}.step-title{margin:.2rem 0 1.2rem;font-size:1.1rem;font-weight:700}.guest-stepper{display:flex;align-items:center;justify-content:space-between;padding:.8rem 0;border-bottom:1px solid var(--line)}.guest-stepper div:first-child{display:grid}.guest-stepper span{color:var(--ink-muted);font-size:.72rem}.guest-stepper div:last-child{display:flex;align-items:center;gap:.9rem}.guest-stepper button{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface-muted);color:var(--ink)}.guest-stepper button:disabled{border-color:transparent;background:#7b909b24;color:var(--ink-muted);box-shadow:none;cursor:not-allowed;opacity:.5}.booking-total{display:grid;grid-template-columns:1fr auto;gap:.6rem;margin:1.2rem 0;padding:1rem;color:var(--ink-soft);font-size:.8rem}.booking-total hr{grid-column:1/-1;width:100%;border:0;border-top:1px solid var(--line)}.booking-total b{color:var(--ink)}.step-actions{display:flex;gap:.75rem}.step-actions button{flex:1;min-height:2.8rem}.booking-panel label:not(.rules-check){display:block;margin-bottom:.85rem;color:var(--ink-soft);font-size:.74rem;font-weight:600}.booking-panel label em{color:var(--danger);font-style:normal}.booking-panel label small{color:var(--ink-muted);font-weight:400}.booking-panel label:not(.rules-check) input,.booking-panel label:not(.rules-check) textarea{display:block;width:100%;margin-top:.3rem;border:1px solid var(--line);border-radius:12px;background:var(--surface-inset);padding:.65rem;color:var(--ink)}.rules-check{display:flex;align-items:flex-start;gap:.6rem;margin:.3rem 0 1rem;color:var(--ink-soft);font-size:.8rem}.rules-check input{margin-top:.2rem;accent-color:var(--accent)}.booking-success{padding:1.25rem .5rem;text-align:center}.booking-success p{margin:0 0 .5rem;color:var(--accent-strong);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.booking-success h2{margin:0 0 .6rem;font-size:1.3rem}.booking-success span{color:var(--ink-soft);font-size:.82rem;line-height:1.55}.site-footer{padding:1.5rem;color:var(--ink-muted);font-size:.7rem;text-align:center}.property-title,.property-stats,.licence{--surface:rgba(37,52,68,.86);--surface-solid:#253444;--surface-muted:#2d3e50;--surface-inset:#1b2835;--line:rgba(255,255,255,.06);--ink:#eef4f8;--ink-soft:#d4dde5;--ink-muted:#93a6b7;--accent:#4fd2cb;--accent-strong:#29aaa3;--accent-soft:rgba(79,210,203,.18);--accent-contrast:#062726;--shadow:12px 12px 28px rgba(6,10,14,.35),-9px -9px 18px rgba(31,44,56,.3);--shadow-soft:8px 8px 18px rgba(5,8,12,.28),-7px -7px 16px rgba(30,42,54,.24);color:var(--ink)}.property-title .property-location,.property-stats{color:var(--ink-soft)}@media(max-width:900px){.property-layout{grid-template-columns:1fr;gap:1.5rem}.property-layout>.gallery,.property-main,.property-booking{grid-column:1;grid-row:auto}.property-booking{position:static;order:2}.property-main{order:3}}@media(max-width:620px){.neo-shell{width:min(100% - 1rem,1180px);padding:.5rem 0 1.5rem}.property-title{padding:1rem}.gallery{height:18rem;border-radius:24px}.gallery__hero{border-radius:20px 0 0 20px}.gallery__grid{border-radius:0 20px 20px 0}.gallery-dialog{width:calc(100vw - 1.5rem);max-width:none}.gallery-dialog img{width:100%;height:auto;max-height:80vh;min-height:0}.gallery-dialog__nav{top:50%;bottom:auto;transform:translateY(-50%)}.gallery-dialog__nav--previous{left:1rem}.gallery-dialog__nav--next{right:1rem}.property-stats{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1rem;padding:1rem}.property-stats span:last-child{grid-column:1 / -1;justify-content:flex-start}.booking-panel input,.booking-panel textarea{font-size:16px}.amenity-list{grid-template-columns:1fr 1fr}.calendar{grid-template-columns:1fr}}
